您的位置:首页 > Web前端 > HTML5

CDH5.12.1版本安装Spark2

2020-07-13 05:45 447 查看

cdh每次安装软件我都不熟悉,这次写一篇博客吧
由于官网说了spark1和spark2是可以共存的,所以我就不删除spark1了:

官网地址如下:https://docs.cloudera.com/documentation/spark2/2-1-x/topics/spark2_requirements.html#cm_versions

流程:
1、先下载spark2对应的spark on yarn的jar包,地址如下:
http://archive.cloudera.com/spark2/csd/
我下载的是SPARK2_ON_YARN-2.1.0.cloudera1.jar这个。
2.在Linux下面新建一个文件夹:mkdir -p /opt/cloudera/csd/ ,并将jar包放置到这个目录下,设置权限:chown -R cloudera-scm:cloudera-scm /opt/cloudera
并且这个目录下只能有一个这样的jar包,否则cdh会识别不出使用哪一个
补充说明:关于为什么要新建这个目录,因为官网就是这么说的,如下

下面地址是上面图片的具体说明
https://docs.cloudera.com/documentation/spark2/2-1-x/topics/spark2_installing.html

补充说明:为什么要下载这个版本:

地址如下:
https://docs.cloudera.com/documentation/spark2/2-1-x/topics/spark2_requirements.html

3、下载parcles:如下是我下载的
SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel和SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha1
Parcels 包的下载地址:
http://archive.cloudera.com/spark2/parcels/2.2.0.cloudera1/

4、上传到你cdh指定的本地目录下,一般都是这个:/opt/cloudera/parcel-repo,并执行如下命令:
mv SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha1 SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el6.parcel.sha
如果你不清楚的话,可以这样看地址:



5、上传完就重启
我的命令如下:
scm:
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server restart (主节点上一次就够了)
agent:
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent restart(3次,三个节点都要)
6、打开cdh,找到parcle页面,点击检查更新parcle,如果还是只显示

这样下载的页面,那就证明你的parcle版本cdh识别不到,换一个低一点的版本试试看

7、一切正常的话spark2那个位置可以显示允许激活分配的,你点击分配

8、分配完毕,进行添加spark2服务的添加

9、添加spark2

10、

11、我的是这个

12、

13、

14、

15

16最后最重要的一步来了老弟
这一步真的很坑爹
找到你的spark2的spark-env.sh 配置文件,我的是在:
/opt/cloudera/parcels/SPARK2/lib/spark2/conf/spark-env.sh
加入如下内容:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/native
export SPARK_LIBRARY_PATH=$SPARK_LIBRARY_PATH:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/native
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/*

然后你才可以运行,这一步很重要,给点掌声哈!!!!!!

具体原因:你可以参考我以前写过的博客:
https://blog.csdn.net/weixin_41538547/article/details/105758286

16.最后运行一个任务试试看:

在spark2-shell上执行如下语句:
val df = spark.read.json("/opt/module/input/employees.json")
,竟然,又报错了


这报的的是资源不足的问题,我去yarn上查看一下:

就是这个任务耗费我所以内存了,我先杀掉这个任务,

然后重新提交就可以了
简直不要太完美
另外附上杀掉任务的shell命令
HADOOP 上经常会对一个application进行一系列操作:
操作命令如下:
yarn application -list 查看yarn上面所有的application
yarn application -list -appStates RUNNING 查看 yarn上面真正running的application
yarn application -list -appTypes MAPREDUCE 查看目前yarn上面类型是 MapReduce的任务
yarn application -status application_1526100291229_206393 查看具体某个application的状态
yarn application -kill application_1526100291229_206393 删除具体某个application的
yarn application -appId application_1478676388082_963529 -updatePriority VERY_HIGH 调整队列的优先级
yarn application -movetoqueue application_1478676388082_963529 -queue root.etl 修改队列

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: