1.文档编写目的
Fayson在前面文章《Livy,基于Apache Spark的开源REST服务,加入Cloudera Labs》、《如何编译Livy并在非Kerberos环境的CDH集群中安装》、《如何在Kerberos环境的CDH集群部署Livy》、《如何通过Livy的RESTful API接口向非Kerberos环境的CDH集群提交作业》及《如何通过Livy的RESTful API接口向Kerberos环境的CDH集群提交作业》中对Livy的介绍、安全与非安全集群的部署以及使用。前面的部署方式相对比较麻烦且不便于管理,本篇文章Fayson主要介绍如何使用脚本打包适用于Cloudera的Livy和Zeppelin的Parcel。
- 测试环境
1.CM5.15.0和CDH版本5.14.2
2.Livy0.5.0
2.环境准备
在进行Livy的Parcel包生成前,我们需要准备打包Parcel脚本的运行环境,确保有公网环境,因为编译Livy时需要下载依赖包。
1.编译依赖Java环境(JDK7或更高版本)
代码语言:javascript复制export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$CLASSPATH
(可左右滑动)
2.安装Maven环境(maven3),用于下载依赖包
代码语言:javascript复制export MVN_HOME=/usr/local/maven
export PATH=$MVN_HOME/bin:$PATH
(可左右滑动)
3.生成manifest.json文件依赖Python环境(2.7/3.3或更高版本)
3.打包Livy和Zeppelin的Parcel包
在GitHub上有提供脚本来打包Livy和Zeppelin的Parcel,地址如下:
https://github.com/alexjbush/livy_zeppelin_cdh_csd_parcels
接下来我们就利用上面的脚本来打包Livy和Zeppelin的Parcel,生成Livy和Zeppelin的Parcel包步骤:
- 下载Livy和Zeppelin源码并编译
- 生成Livy和Zeppelin的Parcel包
- 下载编译Cloudera提供的cm_ext工具,用于校验parcel及生成manifest.json文件
- 生成Livy和Zeppelin的csd文件,用于CM对Livy和Zeppelin服务的识别
1.使用git命令将GitHub上脚本clone到本地
代码语言:javascript复制[root@cdh05 disk1]# git clone https://github.com/alexjbush/livy_zeppelin_cdh_csd_parcels.git
(可左右滑动)
2.进入livy_zeppelin_cdh_csd_parcels目录,运行如下命令
代码语言:javascript复制[root@cdh05 disk1]# cd livy_zeppelin_cdh_csd_parcels/
[root@cdh05 livy_zeppelin_cdh_csd_parcels]# sh build.sh parcel
(可左右滑动)
等待命令执行完成,默认使用的livy版本为Apache官网的0.5.0版本。
默认使用的Zeppelin版本为0.8.0
命令执行成功后在当前目录下生成了Livy和Zeppelin的Parcel包
3.执行脚本生成Livy和Zeppelin的csd文件
代码语言:javascript复制[root@cdh05 ~]# cd /data/disk1/livy_zeppelin_cdh_csd_parcels/
[root@cdh05 livy_zeppelin_cdh_csd_parcels]# sh build.sh csd
(可左右滑动)
命令执行成功,如下生成了Livy和Zeppelin的csd文件
4.总结
1.默认打包脚本是以Livy0.5.0和Zeppelin0.8.0版本编译打包
2.在脚本中使用到Cloudera提供的cm_ext工具(github地址:https://github.com/cloudera/cm_ext)对生成的csd和parcel进行校验,并通过脚本为parcel生成manifest.json清单。
在后面的文章Fayson会介绍在CM上安装Livy和Zeppelin及使用。