spark2.4.4-CDH6.3.0编译

2019-11-14  本文已影响0人  sparkle123

在之前的文章中描述了Spark2.1+CDH5.x的编译步骤,
spark-2.1.0-bin-2.6.0-cdh5.x源码编译

但是,Spark2.4.4的编译命令和前版本略有区别:
需要去掉hadoop-3.0.0-cdh6.3.0hadoop-前缀,这一步很关键,否则会报找不到
hadoop-client jar包的错误。
形如:
./build/mvn -Pyarn -Phadoop-3.0 -Dhadoop.version=3.0.0-cdh6.3.0 -Phive -Phive-thriftserver -DskipTests clean package

首先会下载依赖的zinic与scala:

下载zinc与scala
exec: curl --progress-bar -L https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.tgz

如果网速感人的话,可以自己先下载zinic和scalabuild目录下,

编译成可执行的tgz包(默认基于hive1.2.1):

./dev/make-distribution.sh  \
--name 3.0.0-cdh6.3.0 \
--tgz \
-Pyarn \
-Phadoop-3.0 \
-Phive \
-Phive-thriftserver  \
-Dhadoop.version=3.0.0-cdh6.3.0 

使用自己安装的maven进行编译,其中-T参数是设置编译的线程数,这里设置的是5,
mvn -T 5 -DskipTests clean package

#spark自带的maven
#MVN="$SPARK_HOME/build/mvn"
#使用自己安装的maven
MVN="$MAVEN_HOME/bin/mvn"
#VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)        
# 指的是spark2.4.4这个版本
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\   
# 指的是scala 2.11
#    | grep -v "INFO"\
#    | tail -n 1)
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\  
# 指的是hadoop.version=3.0.0
#    | grep -v "INFO"\
#    | tail -n 1)
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\    
# SPARK_HIVE为1表示支持
#    | 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.11
SPARK_HADOOP_VERSION=3.0.0-cdh6.3.0
SPARK_HIVE=1
image.png

2、编译没有hive的spark包

./dev/make-distribution.sh --name "hadoop3-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-3.0,parquet-provided,orc-provided"

3、spark-2.4.4+Hive2.1.1编译怎么样呢,spark-hivespark-hive-thriftserverhive-1.2.1耦合很深。只改 hive 版本编译基本不可能。
mvn -X查看详细的编译debug信息:

./build/mvn -X -Pyarn -Phadoop-3.0 -Dhadoop.version=3.0.0-cdh6.3.0 -Phive -Phive-thriftserver -Dhadoop.version=3.0.0-cdh6.3.0 -Dhive.version=2.1.1-cdh6.3.0 -Dhive.group=org.apache.hive -DskipTests clean package
编译错误

【参考】
https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started
https://blog.csdn.net/liutielei/article/details/81710866
https://blog.csdn.net/u011940366/article/details/99850247


其他.png
上一篇下一篇

猜你喜欢

热点阅读