如何在Windows上构建Livy客户端?

时间:2017-08-02 14:43:24

标签: java maven apache-spark livy

我想在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之前,您必须安装   使用mvn install

在本地生成livy工件

不幸的是,它似乎是在Windows isn't supported上构建Livy。有人在Windows上成功构建了Livy客户端吗?

1 个答案:

答案 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中编译。