cm 5.14 离线安装spark2.2 on yarn 并测试

        cm5.14中的spark版本是默认是1.6,安装2.2版本的需要手动安装
  1. 安装准备:
SPARK2_ON_YARN-2.2.0.cloudera3.jar
 
cm 5.14 离线安装spark2.2 on yarn 并测试
 
注意:
这里cloudera3对应上边下载的jar包的3,版本要一致
el5对应centos5
el6对应centos6
el7对应centos7
parcel,parcel.sha1, manifest.json 三个都要下载
 
cm 5.14 离线安装spark2.2 on yarn 并测试
 
  1. 开始安装
        停掉cm server 和agent
cm 5.14 离线安装spark2.2 on yarn 并测试
cm 5.14 离线安装spark2.2 on yarn 并测试
    上传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
cm 5.14 离线安装spark2.2 on yarn 并测试
    
    启动cm集群
cm 5.14 离线安装spark2.2 on yarn 并测试
 
cm 5.14 离线安装spark2.2 on yarn 并测试
主机 -- Parcel
可以看到 spark2 就是刚刚下载的spark包
     cm 5.14 离线安装spark2.2 on yarn 并测试
这里点击分配
 
cm 5.14 离线安装spark2.2 on yarn 并测试
 
到这里 可能会卡在已**这步,可以重新回到上一步骤,点击**
 
cm 5.14 离线安装spark2.2 on yarn 并测试
cm 5.14 离线安装spark2.2 on yarn 并测试
 
**完成后回到主页  点击添加服务
找到spark2 -- 继续  --选择主机 后等待安装完成
 
cm 5.14 离线安装spark2.2 on yarn 并测试
 
测试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
 
由于我用的虚拟机  配置比较低  设置的内存分配比较小,这里为了测试把他调大写
cm 5.14 离线安装spark2.2 on yarn 并测试
 
去yarn的配置里搜索     yarn.scheduler.maximum-allocation-mb  调整为1500M  重启 spark 和 yarn 再次执行测试
cm 5.14 离线安装spark2.2 on yarn 并测试
 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInputStream
这个错误是由于 从spark1.4以后,所有spark的编译都是没有将hadoop的classpath编译进去的,所以必须在spark-env.sh中指定hadoop中的所有jar包。
 
cm 5.14 离线安装spark2.2 on yarn 并测试
 
cd  /opt/cloudera/parcels/CDH-5.14.0-1.cdh5.14.0.p0.24/lib/spark/conf
 
cm 5.14 离线安装spark2.2 on yarn 并测试
 
添加     export SPARK_DIST_CLASSPATH=$(hadoop classpath)
cm 5.14 离线安装spark2.2 on yarn 并测试
 
保存退出,再次提交任务 (记得切换到hdfs用户,否则报错 没有权限)
su - hdfs 后再次提交任务,可以看到已经算出计算结果
cm 5.14 离线安装spark2.2 on yarn 并测试
 
找到yarn的webUI查看计算任务
cm 5.14 离线安装spark2.2 on yarn 并测试