cm5.14中的spark版本是默认是1.6,安装2.2版本的需要手动安装
-
安装准备:
SPARK2_ON_YARN-2.2.0.cloudera3.jar
![](https://img-blog.csdnimg.cn/20201107191245471.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
注意:
这里cloudera3对应上边下载的jar包的3,版本要一致
el5对应centos5
el6对应centos6
el7对应centos7
parcel,parcel.sha1, manifest.json 三个都要下载
![](https://img-blog.csdnimg.cn/20201107191245641.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
-
开始安装
停掉cm server 和agent
![](https://img-blog.csdnimg.cn/20201107191245333.png)
![](https://img-blog.csdnimg.cn/20201107191245319.png)
上传parcel包到机器的/opt/cloudera/parcel-repo目录下(最好是cm server机器下的这个目录,如果放在agent机器下可能读取不到)
如果已经存在
manifest.json文件,需要把他备份掉,把刚下载的放进来
SPARK2-2.2.0.cloudera3-1.cdh5.13.3.p0.556753-el6.parcel.sha1 改名为
SPARK2-2.2.0.cloudera3-1.cdh5.13.3.p0.556753-el6.parcel.sha
上传 SPARK2_ON_YARN-2.2.0.cloudera3.jar 放到 /opt/cloudera/csd
![](https://img-blog.csdnimg.cn/20201107191245338.png)
启动cm集群
![](https://img-blog.csdnimg.cn/20201107191245316.png)
![](https://img-blog.csdnimg.cn/20201107191245307.png)
主机 -- Parcel
可以看到 spark2 就是刚刚下载的spark包
![](https://img-blog.csdnimg.cn/20201107191245367.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
这里点击分配
![](https://img-blog.csdnimg.cn/20201107191245503.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
到这里 可能会卡在已激活这步,可以重新回到上一步骤,点击激活
![](https://img-blog.csdnimg.cn/20201107191245406.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20201107191245501.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
激活完成后回到主页 点击添加服务
找到spark2 -- 继续 --选择主机 后等待安装完成
![](https://img-blog.csdnimg.cn/20201107191245595.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
测试spark是否可以正常使用
用spark自带的计算圆周率的jar包测试(这里可能会报错)
jar包位置
/opt/cloudera/parcels/CDH/lib/spark/lib/
spark-examples.jar
找到spark目录
/opt/cloudera/parcels/CDH/lib/spark
提交任务 使用yarn模式(注意路径不要写错 替换自己的路径
)
bin/spark-submit --master yarn --class org.apache.spark.examples.SparkPi --executor-memory 1G /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/examples/lib/spark-examples-1.6.0-cdh5.14.0-hadoop2.6.0-cdh5.14.0.jar 10
由于我用的虚拟机 配置比较低 设置的内存分配比较小,这里为了测试把他调大写
![](https://img-blog.csdnimg.cn/20201107191245605.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
去yarn的配置里搜索
yarn.scheduler.maximum-allocation-mb 调整为1500M 重启 spark 和 yarn 再次执行测试
![](https://img-blog.csdnimg.cn/20201107191245461.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
这个错误是由于
从spark1.4以后,所有spark的编译都是没有将hadoop的classpath编译进去的,所以必须在spark-env.sh中指定hadoop中的所有jar包。
![](https://img-blog.csdnimg.cn/20201107191641102.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
cd
/opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/conf
![](https://img-blog.csdnimg.cn/20201107191245412.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
添加
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
![](https://img-blog.csdnimg.cn/20201107191245488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
保存退出,再次提交任务
(记得切换到hdfs用户,否则报错 没有权限)
su - hdfs 后再次提交任务,可以看到已经算出计算结果
![](https://img-blog.csdnimg.cn/20201107191245573.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)
找到yarn的webUI查看计算任务
![](https://img-blog.csdnimg.cn/20201107191245387.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzE4NjI5NjUz,size_16,color_FFFFFF,t_70)