Spark服务化-为什么选择livy

  • 时间:2018-08-26 23:03 作者:陈序猿9527 来源:陈序猿9527 阅读:1575
  • 扫一扫,手机访问
摘要:Spark服务化需求因为项目需要,需要开发一个Spark服务化的功能,可以提交sql,代码和jar包到Spark集群运行,作为模型自动调度的基础功能。开始阶段,自己实现。自然而然的想到,通过在Spark中建立一个常驻应使用,通过rpc调使用sql 和 内置的应使用。这样够简单,不使用引入新组件,但是

Spark服务化需求

因为项目需要,需要开发一个Spark服务化的功能,可以提交sql,代码和jar包到Spark集群运行,作为模型自动调度的基础功能。

Spark服务化-为什么选择livy

开始阶段,自己实现。自然而然的想到,通过在Spark中建立一个常驻应使用,通过rpc调使用sql 和 内置的应使用。这样够简单,不使用引入新组件,但是配置和升级应使用都不够灵活, 开发出来后发现在稳固性也不够,需要大量时间调优。

SparkJobServer VS Livy

后来发现了SparkJobServer 和 Livy, 都提供了Spark的服务化功能。

相同点:

sparkJobServer 和 Livy, 都提供了REST接口提交spark任务,并且都支持sparkContext复使用。

不同点:

  1. 支持的任务类型,SparkJobServer 只支持jar包, Livy支持提交jar,sql,scala,python等。
  2. 运行模式,SparkJobServer支持client模式,Livy支持client/cluster
  3. 对代码的侵入,SparkJobServer需要继承对应的接口,Livy 不需要。

综合考虑选择了Livy。

Livy简介

Livy的基本架构:

Spark服务化-为什么选择livy

使用户可以以REST请求的方式通过Livy启动一个新的Spark集群,Livy将每一个启动的Spark集群称之为一个会话(session),一个会话是由一个完整的Spark集群所构成的,并且通过RPC协议在Spark集群和Livy服务端之间进行通信。根据解决交互方式的不同,Livy将会话分成了两种类型:

交互式会话(interactive session),这与Spark中的交互式解决spark-shell相同,交互式会话在其启动后可以接收使用户所提交的代码片段,在远端的Spark集群上编译并执行;

批解决会话(batch session),使用户可以通过Livy以批解决的方式启动Spark应使用,这样的一个方式在Livy中称之为批解决会话,这与Spark中的批解决是相同的。

可以看到,Livy所提供的核心功能与原生Spark是相同的,它提供了两种不同的会话类型来代替Spark中两类不同的解决交互方式。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|服务器应用】树莓派安装TensorFlow(2020-04-24 21:11)
【系统环境|服务器应用】防面试-SD_WebImage(2020-04-24 21:11)
【系统环境|服务器应用】推荐一款视频控件xgplayer(2020-04-24 21:11)
【系统环境|服务器应用】PostgreSQL 源码解读(27)- 查询语句#12(查询优化-上拉子链接#2)(2020-04-24 21:11)
【系统环境|服务器应用】如何轻松学习JavaScript?(2020-04-24 21:10)
【系统环境|服务器应用】【源码剖析】Launcher 8.0 源码 (12) --- Launcher 启动流程 第五步之计算桌面各布局细节参数(2020-04-24 21:10)
【系统环境|服务器应用】前台碰撞室之console.log与文本字符(2020-04-24 21:10)
【系统环境|服务器应用】好用的Middleware实现(2020-04-24 21:10)
【系统环境|服务器应用】前台面试每日 3+1 —— 第373天(2020-04-24 21:10)
【系统环境|服务器应用】绍圣--kafka之生产者(五)(2020-04-24 21:10)
手机二维码手机访问领取大礼包
返回顶部