Spark升级,编译部署指定版本
Spark升级,编译部署指定版本
背景:为满足需求,我们需要升级spark到2.2.1,并且hadoop版本要是CDH版本
1、 下载spark官方源码
2、 解压,并修改pom文件支持要求
修改hadoop版本:
<hadoop.version>2.6.0-cdh5.11.0</hadoop.version>
-
-
<profile>
<id>hadoop-2.6</id>
<properties>
<hadoop.version>2.6.0-cdh5.11.0</hadoop.version>
<jets3t.version>0.9.3</jets3t.version>
<zookeeper.version>3.4.5</zookeeper.version>
<curator.version>2.6.0</curator.version>
</properties>
</profile>
添加cloudera中央仓库:
<repository>
<id>cloudera</id>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
备注:需要什么版本修改什么版本
3、 选择scala版本(非必选)
./dev/change-scala-version.sh 2.10
4、 编译源码
mvn -Pyarn -Phadoop-2.6 -Phive-Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.11.0 -DskipTests clean package> ../1.log 2>&1 &
成功如下:
5、 使用spark指定便已部署命令生成release版本
./dev/make-distribution.sh --name custom-spark --tgz-Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.11.0 -Pyarn > ../3.log 2>&1 &
备注:
make-distribution参数:
-tgz:制定生成组件包格式
-Phive –Pyarn格式参数制定要求打包的模块,按需选择
成功:
如图最后生成制定tar包(这一步会很慢,要有耐心,并且我本机一执行就卡死,直到拿到服务器才算OK)
6、 测试
我们把生成的tar包拿到一个集群环境上进行测试,首先我们做一些前置工作,简单修改下配置:
如图,新建两个配置文件(spark-env.sh,spark-defaults.conf):
修改配置文件:
spark-env.sh添加如下hadoop-conf-dir环境变量:
spark-defaults.conf添加如下配置:
spark.master=yarn
spark.eventLog.enabled=true
spark.eventLog.dir=hdfs://BigData-Dev-1:8020/user/spark/applicationHistory
spark.serializer=org.apache.spark.serializer.KryoSerializer
spark.yarn.historyServer.address=http://BigData-Dev-1:18088
最后spark-shell测试:
官方文档:
https://spark.apache.org/docs/latest/building-spark.html#building-for-scala-210