学习 Livy(二):Java API

Apache Livy 提供了 Java API 提交 Spark 任务到 Livy。

添加依赖:

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

Spark 任务需要实现 org.apache.livy.Job
接口:

public class TestJob implements Job<String> {

  @Override
  public Double call(JobContext ctx) throws Exception {
    return ctx.sparkSession.version();
  }

}

从任务上下文 org.apache.livy.JobContext
对象,可以获取运行 Spark 任务的 SparkSession
SparkContext
SQLContext
HiveContext
等对象。

Java API 的实现基于 REST API,即 org.apache.livy.client.http.HttpClient

LivyClient client = new LivyClientBuilder()  
  .setURI(new URI("http://127.0.0.1:8998"))
  .setConf("spark.sql.parquet.writeLegacyFormat", "true")
  .build(); // ①

try {  
  client.uploadJar(new File(path)).get(); // ②

  String version = client.submit(new TestJob()).get(); // ③

  System.out.println(version);
} finally {
  client.stop(true); // ④
}

① 根据 Livy URL 地址构建 LivyClient;

② 上传依赖 Java 软件包;

③ 提交 Livy 任务并获取结果;

④ 关闭客户端。

参考

  • Livy Docs – Programmatic API

原文 

http://blog.dyingbleed.com/livy-2/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 学习 Livy(二):Java API

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址