1

我想在 Windows 上编写一个 Java 应用程序,它使用 Livy 的 Java API 与远程托管的 Apache Livy 服务器通信。文档说:

将 Livy 客户端依赖项添加到应用程序的 POM:

<dependency>
  <groupId>org.apache.livy</groupId>
  <artifactId>livy-client-http</artifactId>
  <version>0.4.0-SNAPSHOT</version>
</dependency>

注意:在 Livy 的第一个 Apache 版本之前,您必须使用在本地安装 livy 工件mvn install

不幸的是,似乎不支持在 Windows 上构建 Livy 。有没有人在 Windows 上成功构建了 Livy 客户端?

4

1 回答 1

1

我所关心的只是让 livy-client-http 在我的本地 maven .m2 存储库中构建和安装。这是我在 Windows 7 中所做的:

git clonepom.xmlincubator-livy 然后在其(归功于Yatzhash )中注释掉这一部分:

<requireOS>
    <family>unix</family>
</requireOS>

mvn install -DskipTests在顶级目录中运行。如果您从常规的 Windows 命令提示符执行此操作,最终将失败并出现以下错误:

[错误] 无法在项目 livy-server 上执行目标 org.apache.maven.plugins:maven-antrun-plugin:1.8:run(默认):发生 Ant BuildException:执行失败:java.io.IOException:无法运行program "bash" (in directory "C:\github.com\incubator-livy\server"): CreateProcess error=2, The system cannot find the file specified [ERROR] around Ant part ...... @ 4: 27 在 C:\github.com\incubator-livy\server\target\antrun\build-main.xml

但是,如果您在Git Bash提示符下运行相同的命令,则可以绕过此错误。最终构建将在 livy-integration-test 失败,但至少 livy-client-http 构建应该已经通过。

但是你会发现这个 jar 已经安装在你的 .m2 存储库中:livy-client-http-0.4.0-incubating-SNAPSHOT.jar。这意味着您需要修改自己的客户端应用程序的依赖项,使其看起来像这样,而不是 Livy 文档推荐的依赖项:

<dependency>
    <groupId>org.apache.livy</groupId>
    <artifactId>livy-client-http</artifactId>
    <version>0.4.0-incubating-SNAPSHOT</version>
</dependency>

我还必须将此依赖项添加到我的客户端应用程序中,因为我想通过 Livy 与 Spark 2.1 服务器通信:

<dependency>
    <!-- See https://spark.apache.org/docs/2.1.0/programming-guide.html#linking-with-spark -->
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.1.0</version>
</dependency>

然后我的客户端应用程序将在 Windows 中编译。

于 2017-08-02T15:00:36.133 回答