Spark2.4.4源码编译
环境准备
安装好软件,配置好环境变量,并检查是否生效。
jdk1.8.0_45
maven 3.6.3
scala2.12.10
配置阿里仓库
maven 3.6.3 : 需要修改maven的安装目录下的conf/settings.xml文件中添加如下配置,以达到jar下载加速的效果
<!-- 阿里云中央仓库 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
设置pom.xml文件
如果要编译对应的cdh版本,需要在源码的根目录下的pom文件中添加如下的仓库。 添加 cdh的仓库。
<repository>
<id>clouders</id>
<name>clouders Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
maven方式
设置maven编译内存
如果报oom,要把内存调大
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
使用maven命令编译源码
mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.16.2 -DskipTests clean package
dev/make-distribution.sh方式(生产推荐)
命令解释:
--name 2.6.0-cdh5.16.2 ***指定编译出来的spark名字,name=
--tgz ***压缩成tgz格式
-Pyarn \ ***支持yarn平台
-Phadoop-2.6 \ -Dhadoop.version=2.6.0-cdh5.16.2 \ ***指定hadoop版本为2.6.0-cdh5.16.2
-Phive -Phive-thriftserver \ ***支持hive
-DskipTests clean package ***跳过测试包
修改make-distribution.sh以跳过检查
首先修改脚本:在spark源码包根目录下执行如下命令
vi dev/make-distribution.sh
注释掉以下内容:位于文件中的120~136行。
#VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
# | grep -v "INFO"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n)
添加以下内容:
VERSION=2.4.4
SCALA_VERSION=2.12
SPARK_VERSION=2.6.0-cdh5.16.2
SPARK_HIVE=1
修改后保存退出。在源码包根目录指定以下命令:
./dev/make-distribution.sh \
--name 2.6.0-cdh5.16.2 \
--tgz \
-Dhadoop.version=2.6.0-cdh5.16.2 \
-Phadoop-2.6 \
-Phive -Phive-thriftserver \
-Pyarn
编译后的文件
[hadoop@JD spark-2.4.4]$ ll
-rw-rw-r-- 1 hadoop hadoop 268896048 Jan 9 17:44 spark-2.4.4-bin-2.6.0-cdh5.16.2.tgz
解压文件到app目录下
[hadoop@JD spark-2.4.4]$ tar -zxvf spark-2.4.4-bin-2.6.0-cdh5.16.2.tgz -C ../