我想在Windows上编写一个Java应用程序,它使用Livy的Java API与远程托管的Apache Livy服务器进行通信。 docs说:
将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 isn't supported上构建Livy。有人在Windows上成功构建了Livy客户端吗?
答案 0 :(得分:1)
我所关心的只是让livy-client-http构建并安装在我当地的maven .m2存储库中。这就是我在Windows 7中所做的:
git clone
孵化器-iviv然后在其pom.xml
中注释掉这一部分(归功于Yatzhash):
<requireOS>
<family>unix</family>
</requireOS>
在顶级目录中运行mvn install -DskipTests
。如果从常规Windows命令提示符执行此操作,它最终将失败并显示以下错误:
[错误]无法执行目标org.apache.maven.plugins:maven-antrun-plugin:1.8:在项目livy-server上运行(默认):发生了Ant BuildException:执行 失败:java.io.IOException:无法运行程序“bash”(在目录“C:\ github.com \ incubator-livy \ server”中):CreateProcess error = 2,系统找不到 文件指定 [ERROR]围绕Ant部分...... @ 4:27在C:\ github.com \ incubator-livy \ server \ target \ antrun \ build-main.xml
但是,如果您在Git Bash提示符中运行相同的命令,则可以绕过此错误。最终构建将在livy-integration-test失败,但至少livy-client-http构建应该已经通过。
但是你会发现你的.m2存储库中已经安装了这个jar: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中编译。