美文网首页
spark2.4.4-CDH6.3.0编译

spark2.4.4-CDH6.3.0编译

作者: sparkle123 | 来源:发表于2019-11-14 20:27 被阅读0次

    在之前的文章中描述了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"
    
    • 注意事项:
      1、官方脚本自带一些环境变量检查,会导致编译检查耗时,修改make-distribution.sh脚本,将VERSION ,SCALA_VERSION ,SPARK_HADOOP_VERSION ,SPARK_HIVE 注释掉,直接写上自己的版本号。
    #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

    相关文章

      网友评论

          本文标题:spark2.4.4-CDH6.3.0编译

          本文链接:https://www.haomeiwen.com/subject/ekghictx.html