Livy的安装使用

Apache Livy是Apache孵化器中的一个项目,它提供了REST接口来与Spark集群进行交互,支持提交Spark作业、代码片段,并管理SparkContext。Livy结合了Spark Job Server和Zeppelin的优点,支持长时间运行的SparkContext、Yarn集群模式,且可以跨多个Spark job和客户端共享RDD和DataFrame。本文介绍了Livy的安装步骤,包括下载、配置环境变量、启动服务,以及如何使用Livy新建session、提交代码和管理Spark任务。
摘要由CSDN通过智能技术生成

Livy介绍(apache 孵化项目)

官网:https://livy.incubator.apache.org/

Livy是一个提供rest接口和spark集群交互的服务。它可以提交spark job或者spark一段代码,同步或者异步的返回结果;也提供sparkcontext的管理,通过restfull接口或RPC客户端库。Livy也简化了与spark与应用服务的交互,这允许通过web/mobile与spark的使用交互。其他特点还包含:

  1. 长时间运行的SparkContext,允许多个spark job和多个client使用。
  2. 在多个spark job和客户端之间共享RDD和Dataframe
  3. 多个sparkcontext可以简单的管理,并运行在集群中而不是Livy Server,以此获取更好的容错性和并行度。
  4. 作业可以通过重新编译的jar、片段代码、或Java/Scala的客户端API提交。

Livy结合了spark job server和Zeppelin的优点,并解决了spark job server和Zeppelin的缺点。

  1. 支持jar和snippet code
  2. 支持SparkContext和Job的管理
  3. 支持不同SparkContext运行在不同进程,同一个进程只能运行一个SparkContext
  4. 支持Yarn cluster模式
  5. 提供restful接口,暴露SparkContext

Livy安装

下载

下载地址:

Apache Livy是一个开源项目,它提供了一种RESTful接口,用于在Apache Spark集群上运行交互式和批处理作业。这个接口使得在Java或其他编程语言中使用Spark变得更加简单和方便。 安装 1. 安装Java和Scala Livy需要Java 8或更高版本和Scala 2.11.x或2.12.x。您可以从官方网站下载Java和Scala,也可以使用包管理器进行安装。 2. 下载和编译Livy源代码 您可以从Apache Livy的官方网站https://livy.apache.org/download/下载最新版本的源代码。下载后,解压缩文件并使用以下命令编译: ``` $ mvn clean package -DskipTests ``` 3. 配置Livy 在编译完成后,将生成一个目录livy-0.7.1-incubating-bin。在该目录中,找到conf目录并编辑livy.conf文件。在该文件中,您需要配置以下参数: ``` livy.server.port = 8998 livy.file.local-dir-whitelist = /tmp livy.spark.master = spark://<spark-master>:7077 ``` 其中,livy.server.port是Livy服务器的端口号,livy.file.local-dir-whitelist是本地目录的白名单,livy.spark.master是Spark master的URL。 4. 启动Livy 在配置完成后,使用以下命令启动Livy: ``` $ bin/livy-server ``` 在启动完成后,您可以使用http://localhost:8998/访问Livy的RESTful API。 使用 在Java中使用Livy,您需要使用Livy的Java客户端库。您可以在Maven中添加以下依赖项: ```xml <dependency> <groupId>org.apache.livy</groupId> <artifactId>livy-client-common</artifactId> <version>0.7.1-incubating</version> </dependency> <dependency> <groupId>org.apache.livy</groupId> <artifactId>livy-client-spark_2.11</artifactId> <version>0.7.1-incubating</version> </dependency> ``` 1. 创建LivyClient对象 使用以下代码创建一个LivyClient对象: ```java LivyClient client = new LivyClientBuilder() .setURI(new URI("http://localhost:8998")) .build(); ``` 其中,URI参数是Livy服务器的URL。 2. 提交Spark作业 使用以下代码提交一个Spark作业: ```java JavaSparkContext spark = new JavaSparkContext("spark://<spark-master>:7077", "MyApp"); List<Integer> data = Arrays.asList(1, 2, 3, 4, 5); JavaRDD<Integer> distData = spark.parallelize(data); int result = distData.reduce((a, b) -> a + b); ``` 其中,spark参数是Spark master的URL,data是一个包含整数的列表,distData是一个JavaRDD对象,result是reduce操作的结果。 使用以下代码将作业提交到Livy服务器: ```java JobHandle<Integer> handle = client.submit(new JavaSparkJob<>(MyApp.class.getName(), result)); ``` 其中,JavaSparkJob是一个用于包装Spark作业的类,MyApp是您的Spark作业的类名,result是作业的结果。 3. 获取作业结果 使用以下代码获取作业的结果: ```java int result = handle.get(); ``` 其中,handle是提交作业后返回的JobHandle对象,result是作业的结果。 4. 关闭LivyClient对象 使用以下代码关闭LivyClient对象: ```java client.stop(true); ``` 其中,true参数表示在关闭之前等待所有作业完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值