spark on yarn 完全分部署_spark周边项目之Livy

v2-3daecf3b5bfb6c0348ec2f9e1cc4bf3d_1440w.jpg?source=172ae18b

无Spark Client环境的部署实现

首先,熟悉spark开发的人都知道spark的部署模式分为三种,分别为Local、Standalone、YARN,通过YARN又分为YARN-Client和YARN-Cluster ,Local模式一般就是在本地运行Spark任务,需要Spark环境的,Standalone模式是Spark自身的一种调度模式,也是需要Spark环境,YARN模式中,其实是将Spark JAR包提交到YARN上面,由YARN去开启Contioner然后去执行Spark的作业,这个其实只需要上传Spark Jar包和一些依赖包。不需要在部署Spark环境(充当一个Submit的功能,还占用节点资源)

首先,将Spark jar包和工程的build之后的jar以及工程依赖的jar包上传到HDFS上面,通过本地可以直接运行然后提交Spark 作业,代码已经放在本人Git中,地址如下:

https://github.com/bin-albin/sparkdeploy [另外提供了真实的项目实例(基于Spark Streaming的实时监控计算Pro)]使用方式也很简单,详见REDEME.MD

好的,自己的小玩意已经介绍完了,有兴趣的话可以试一下,下面介绍一下今天的主角:Apache Livy (目前在ASF孵化中)

最近发现了一个Spark周边项目 Live ,包含的功能很多都是围绕于Spark(1.6+),Livy目前版本是0.6.0-ASF孵化项目

Livy概述

Livy 是 Apache Spark的一个REST服务,Livy可以在任意平台上提交Spark作业

  • Livy可以在WEB/Mobile中提交(不需要Spark客户端)可编程的、容错的、多租户的Spark作业,因此,多个用户可以并发的、可靠的与Spark集群进行交互
  • 使用交互式Python和Scala
  • Livy可以使用Scala或者Python语言,因此客户端可以通过远程与Spark集群进行通讯,此外,批处理作业可以在Scala、java、python中完成
  • 不需要修改代码
  • 对现在程序的代码修改不需要修改Livy,只需要在Maven构建Livy,在Spark集群中部署配置就可以

Apache Livy是什么?

Apache Livy是一个可以通过REST接口轻松的与Spark集群进行交互的服务,它可以很方便提交Spark作业或者Spark代码片段,同步或者异步的进行结果检索以及Spark Context上下文管理,Apache Livy还简化了Spark和应用程序服务器之间的交互,从而使Spark能够用于交互式Web /移动应用程序。其他功能包括:

  • 由多个客户端长时间运行可用于多个Spark作业的Spark上下文
  • 跨多个作业和客户端共享缓存的RDD或数据帧
  • 可以同时管理多个Spark上下文,并且Spark上下文运行在群集上(YARN / Mesos)而不是Livy服务器,以实现良好的容错性和并发性
  • 作业可以作为预编译的jar,代码片段或通过java / scala客户端API提交
  • 通过安全的认证通信确保安全

Livy官网结构图:

v2-1d8310025b2f80d0cfdecf07cae0b606_b.jpg

Livy的安装运行至少是基于Spark1.6+,并且支持Scala 2.10和2.11,需要导入Livy环境变量如下:

export SPARK_HOME=/usr/lib/spark

export HADOOP_CONF_DIR=/etc/hadoop/conf

然后启动服务

./bin/livy-server

Livy默认情况下使用SPARK_HOME的配置,建议将Spark以YARN集群模式的方式提交应用程序,这样可以确保用户会话在YARN集群模式中合适的分配资源,在运行多个Livy服务器的时候不会导致机器过载

配置Livy

Livy在配置目录下使用一些配置文件,默认情况下是Livy安装下的conf目录。LIVY_CONF_DIR在启动Livy时,可以通过设置环境变量来提供备用配置目录。

Livy使用的配置文件是:

  • livy.conf:包含服务器配置。Livy发行版附带一个默认配置文件模板,其中列出了可用的配置键及其默认值。
  • spark-blacklist.conf:列出了用户不允许覆盖的Spark配置选项。这些选项将被限制为其默认值或Livy使用的Spark配置中设置的值。
  • log4j.properties:Livy日志记录的配置。定义日志级别以及写入日志消息的位置。默认配置模板将打印日志消息到stderr。

一旦Livy服务器正在运行,您可以通过端口8998连接到它(这可以通过livy.server.port配置选项进行更改 )

从此再也不用编译、打包提交jar到远程服务器去执行了!

而且有数据平台构建能力的的团队,可以将该框架包装为服务,提供后前段进行提交spark作业,并且可以监控每个spark作业当时的任务进度!

希望本文对你有帮助!

感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值