Spark升级,编译部署指定版本

                                   Spark升级,编译部署指定版本

 

背景:为满足需求,我们需要升级spark到2.2.1,并且hadoop版本要是CDH版本

 

1、        下载spark官方源码

Spark升级,编译部署指定版本 Spark升级,编译部署指定版本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 &

 

成功如下:

Spark升级,编译部署指定版本

 

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格式参数制定要求打包的模块,按需选择

 

成功:

Spark升级,编译部署指定版本

 

如图最后生成制定tar包(这一步会很慢,要有耐心,并且我本机一执行就卡死,直到拿到服务器才算OK)

 

6、        测试

我们把生成的tar包拿到一个集群环境上进行测试,首先我们做一些前置工作,简单修改下配置:

如图,新建两个配置文件(spark-env.sh,spark-defaults.conf):

Spark升级,编译部署指定版本

 

修改配置文件:

spark-env.sh添加如下hadoop-conf-dir环境变量:

Spark升级,编译部署指定版本

 

spark-defaults.conf添加如下配置:

Spark升级,编译部署指定版本

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测试:

Spark升级,编译部署指定版本

 

官方文档:

https://spark.apache.org/docs/latest/building-spark.html#building-for-scala-210