本次编译的是spark2.3.0版本,基于Hadoop2.6.0-cdh5.16.1版本进行编译
这里提供编译好的包以及编译中需要的jar包的maven本地镜像
链接:https://pan.baidu.com/s/1YM5Jdqrb_XwxuUi6_gODZg
提取码:ouu0
复制这段内容后打开百度网盘手机App,操作更方便哦
一、编译环境
Vmware 虚拟机 centos7.5
maven3.3.9
scala2.11.8
git
scala需要2.11.8版本的 ,如果不是,编译过程中还会去下载2.11.8的包
二、开始编译
(2.1)解压源码
从 https://archive.apache.org/dist/spark/spark-2.3.0/ 中下载源码包 spark-2.3.0.tgz 上传到服务器
(2.2)修改pom文件
在repositories标签中新增阿里云的maven仓库地址和cloudera的仓库地址
<repository>
<id>aliyun</id>
<name>cloudera Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
<repository>
<id>cloudera</id>
<name>cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
(2.3)修改make-distribution.sh脚本
在 make-distribution.sh 脚本中注释掉 VERSION到SPARK_HIVE这些代码(这部分代码会在编译时检查一些版本信息,导致编译过程很慢)
并手动指定版本,如下图所示
[hadoop@hadoop dev]$ vim /home/hadoop/sourcecode/spark-2.3.0/dev/make-distribution.sh
(2.4)用命令编译
[hadoop@hadoop dev]$ cd /home/hadoop/sourcecode/spark-2.3.0
[hadoop@hadoop spark-2.3.0]$ ./dev/make-distribution.sh --name 2.6.0-cdh5.16.1 --tgz -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.16.1 -Phive -Phive-thriftserver -Pyarn
(2.5)编译过程中遇到的问题
(2.5.1)缺少Zinc
因服务器环境缺少Zinc,导致编译过程中还需要去下载,第一次编译时还因为下载失败导致编译失败
(2.5.2)网络原因下不到jar包
本次编译网络还算好的,只遇到了一次
[ERROR] Failed to execute goal on project spark-yarn_2.11: Could not resolve dependencies for project org.apache.spark:spark-yarn_2.11:jar:2.3.0: Failed to collect dependencies at org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.6.0-cdh5.16.1: Failed to read artifact descriptor for org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.6.0-cdh5.16.1: Could not transfer artifact org.apache.hadoop:hadoop-yarn-server-web-proxy:pom:2.6.0-cdh5.16.1 from/to cloudera (https://repository.cloudera.com/artifactory/cloudera-repos/): Connection reset -> [Help 1]
解决方法:手动下载 org.apache.hadoop:hadoop-yarn-server-web-proxy:jar:2.6.0-cdh5.16.1 包安装到本地maven仓库即可
三、编译技巧
(1)在pom文件中添加aliyun的maven仓库和cloudera的仓库,加速编译并减少下载jar包失败的情况
(2)修改make-distribution.sh脚本,跳过耗时较长的检查版本时间
其它参考:http://spark.apache.org/docs/2.3.0/building-spark.html
四、编译成功
编译成功后,在spark的源码目录 /home/hadoop/sourcecode/spark-2.3.0 就能找到相应的编译后的包:spark-2.3.0-bin-2.6.0-cdh5.16.1.tgz
网友评论