Spark实战系列4:Spark周边项目Livy简介

2022-04-18 18:37:36 浏览数 (1)

Spark 系列 :

SparkContext初始化内部原理

spark checkpoint的实现

[译]Spark作业调度

1 关于无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孵化中)

2

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集群中部署配置就可以

3

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提交
  • 通过安全的认证通信确保安全

4

Livy官网结构

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服务器的时候不会导致机器过载

5

配置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 配置选项进 行更改)

0 人点赞