• 沒有找到結果。

DLI Livy 简介

DLI Livy是基于开源的Apache Livy用于提交Spark作业到DLI的客户端工具。

准备工作

● 创建DLI队列。在“队列类型”中选择“通用队列”,即Spark作业的计算资源。

具体请参考创建队列。

● 准备一个linux弹性云服务器ECS,用于安装DLI Livy。

– ECS需要放通30000至32767端口、8998端口。

– ECS需安装Java JDK,JDK版本建议为1.8。配置Java环境变量JAVA_HOME。

– 查询弹性云服务器ECS详细信息,获取ECS的“私有IP地址”。

● 使用增强型跨源连接打通DLI队列和Livy实例所在的VPC网络。具体操作可以参考 增强型跨源连接。

DLI Livy 工具下载及安装

说明

本次操作下载的DLI Livy版本为apache-livy-0.7.2.0100-dli-SNAPSHOT-bin.tar.gz,后续版本 变化请根据实际情况修改。

步骤1 单击下载链接,获取DLI Livy工具压缩包。

步骤2 使用WinSCP工具,将获取的工具压缩包上传到准备好的ECS服务器目录下。

步骤3 使用root用户登录ECS服务器,执行以下命令安装DLI Livy工具。

1. 执行以下命令创建工具安装路径。

mkdir livy安装路径

例如新建路径/opt/livy:mkdir /opt/livy。后续操作步骤均默认以/opt/livy安装 路径演示,请根据实际情况修改。

2. 解压工具压缩包到安装路径。

tar extract file apache-livy-0.7.2.0100-dli-SNAPSHOT-bin.tar.gz --directory /opt/livy --strip-components 1 --no-same-owner

3. 执行以下命令修改配置文件名称。

cd /opt/livy/conf

mv livy-client.conf.template livy-client.conf mv livy.conf.template livy.conf

mv livy-env.sh.template livy-env.sh

mv log4j.properties.template log4j.properties

mv spark-blacklist.conf.template spark-blacklist.conf touch spark-defaults.conf

----结束

修改 DLI Livy 工具配置文件

步骤1 上传指定的DLI Livy工具jar资源包到OBS桶路径下。

1. 登录OBS控制台,在指定的OBS桶下创建一个存放Livy工具jar包的资源目录。例 如:“obs://bucket/livy/jars/”。

2. 获取以下jar包,上传到步骤1.1创建的OBS桶资源目录下。

需要上传的jar包名称如下:

/opt/livy/rsc-jars/livy-api-0.7.2.0100-dli-SNAPSHOT.jar /opt/livy/rsc-jars/livy-rsc-0.7.2.0100-dli-SNAPSHOT.jar

/opt/livy/repl_2.11-jars/livy-core_2.11-0.7.2.0100-dli-SNAPSHOT.jar /opt/livy/repl_2.11-jars/livy-repl_2.11-0.7.2.0100-dli-SNAPSHOT.jar

步骤2 修改DLI Livy工具配置文件。

1. 编辑修改配置文件“ /opt/livy/conf/livy-client.conf”。

vi /opt/livy/conf/livy-client.conf 添加如下内容,并根据注释修改配置项。

#当前ECS的私有IP地址,也可以使用ifconfig命令查询。

livy.rsc.launcher.address = X.X.X.X

#当前ECS服务器放通的端口号

livy.rsc.launcher.port.range = 30000~32767

2. 编辑修改配置文件“ /opt/livy/conf/livy.conf”。

vi /opt/livy/conf/livy.conf

添加如下内容。根据注释说明修改具体的配置项。

livy.server.port = 8998 livy.spark.master = yarn

livy.server.contextLauncher.custom.class=org.apache.livy.rsc.DliContextLauncher livy.server.batch.custom.class=org.apache.livy.server.batch.DliBatchSession

livy.server.interactive.custom.class=org.apache.livy.server.interactive.DliInteractiveSession livy.server.sparkApp.custom.class=org.apache.livy.utils.SparkDliApp

livy.server.recovery.mode = recovery livy.server.recovery.state-store = filesystem

#以下文件路径请根据情况修改

livy.server.recovery.state-store.url = file:///opt/livy/store/

livy.server.session.timeout-check = true livy.server.session.timeout = 1800s livy.server.session.state-retain.sec = 1800s livy.dli.spark.version = 2.3.2

livy.dli.spark.scala-version = 2.11

# 填入步骤1中存储livy jar包资源的OBS桶路径。

livy.repl.jars = obs://bucket/livy/jars/livy-core_2.11-0.7.2.0100-dli-SNAPSHOT.jar, obs://bucket/

livy/jars/livy-repl_2.11-0.7.2.0100-dli-SNAPSHOT.jar

livy.rsc.jars = obs://bucket/livy/jars/livy-api-0.7.2.0100-dli-SNAPSHOT.jar, obs://bucket/livy/jars/

livy-rsc-0.7.2.0100-dli-SNAPSHOT.jar

# 提交作业使用的access key。

spark.dli.user.access.key=XXXX

# 提交作业使用的secret key。

spark.dli.user.secret.key=XXXX

# 提交作业使用的projectId。

spark.dli.user.projectId=XXXX

2-19 spark-defaults.conf 必选参数说明

参数名 参数填写说明

spark.dli.user.r

egionName DLI队列所在的region名。

具体从地区和终端节点获取,对应“区域”列就是 regionName。

spark.dli.user.d

liEndPoint DLI队列所在的终端节点。具体从地区和终端节点获取,对应 的“终端节点(Endpoint)”就是该参数取值。

spark.dli.user.q

ueueName DLI队列名称。

spark.dli.user.a

ccess.key 对应用户的访问密钥。该用户需要有Spark作业相关权限,权 限说明详见权限管理。

密钥获取方式请参考获取AK/SK。

spark.dli.user.s ecret.key spark.dli.user.p

rojectId 参考获取项目ID获取项目ID。

以下参数为可选参数,请根据参数说明和实际情况配置。详细参数说明请参考 Spark Configuration。

2-20 spark-defaults.conf 可选参数说明 Spark作业参数 对应Spark批处理参

备注

spark.dli.user.file file 如果是对接notebook工具场景时不 需要设置。

spark.dli.user.class

Name class_name 如果是对接notebook工具场景时不 需要设置。

spark.dli.user.scTy

pe sc_type 推荐使用livy原生配置。

spark.dli.user.args args 推荐使用livy原生配置。

spark.submit.pyFil

es python_files 推荐使用livy原生配置。

spark.files files 推荐使用livy原生配置。

spark.dli.user.mod

ules modules

-spark.dli.user.ima

ge image 提交作业使用的自定义镜像,仅容

器集群支持该参数,默认不设置。

spark.dli.user.auto

Recovery auto_recovery

-Spark作业参数 对应Spark批处理参 数

备注

spark.dli.user.max

RetryTimes max_retry_times -spark.dli.user.cata

logName catalog_name 访问元数据时,需要将该参数配置 为dli。

----结束

启动 DLI Livy 工具

步骤1 进入到工具安装目录。

例如:cd /opt/livy

步骤2 执行以下命令启动DLI Livy。

./bin/livy-server start ----结束

通过 DLI Livy 工具提交 Spark 作业到 DLI

本示例演示通过curl命令通过DLI Livy工具将Spark作业到DLI。

步骤1 将开发好的Spark作业程序jar包上传到OBS路径下。

例如,本示例上传“spark-examples_2.11-XXXX.jar”到“obs://bucket/path”路径 下。

步骤2 以root用户登录到安装DLI Livy工具的ECS服务器。

步骤3 执行curl命令通过DLI Livy工具提交Spark作业请求到DLI。

说明

ECS_IP为当前安装DLI Livy工具所在的弹性云服务器的私有IP地址。

curl --location --request POST 'http://ECS_IP:8998/batches' \ --header 'Content-Type: application/json' \

--data-raw '{

"driverMemory": "3G", "driverCores": 1, "executorMemory": "2G", "executorCores": 1, "numExecutors": 1, "args": [

"1000"

],

"file": "obs://bucket/path/spark-examples_2.11-XXXX.jar", "className": "org.apache.spark.examples.SparkPi", "conf": {

"spark.dynamicAllocation.minExecutors": 1, "spark.executor.instances": 1,

"spark.dynamicAllocation.initialExecutors": 1, "spark.dynamicAllocation.maxExecutors": 2 }

----结束