暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

编译spark2.3.0源码

芒果汁的大数据之旅 2021-06-29
1016

 心灵纯洁的人,生活充满甜蜜和喜悦。——列夫·托尔斯泰



本周闲暇之余产生对编译spark源码(去除hive相关jar包)的浓厚兴趣,于是在经过一番测试之后,成功编译。本文会将编译过程所需的框架版本和参考思路记录下来。





01



版本匹配问题




首先编译源码,需要参照官网给予的推荐版本




从提示中可以看出我们需要下载hive-3.0.x对应spark-2.3.0




官方提示spark各版本编译指令


    Prior to Spark 2.0.0:
    #spark2.0.0之前
    ./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.4,parquet-provided"
    Since Spark 2.0.0:
    #spark2.0.0以后
    ./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"
    Since Spark 2.3.0:
    #spark2.3.0之后
    ./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided,orc-provided"




    我们这里使用spark2.3.0,并选择scala 2.11.8  maven3.8.1  jdk8_202













    需要指出的是,笔者原本是使用jdk8_181,maven3.5.4,spark2.4.5,


    Scala2.12.x版本做的编译,但是编译中途会报jdk181重大bug,因此升级


    了jdk版本,maven版本一并从3.5.4升级3.8.1,spark 2.4.5 降级2.3.0


    与官方推荐保持一致,Scala降级为2.11.8。




    02


    开始编译




    首先确保maven,jdk,spark。Scala环境变量已妥善配置


    解压spark包至目标目录






      # cd 进入spark所在目录
      ./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
      ## 等待编译


      这一步骤完成之后,进入spark/dev目录执行命令

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



        这一步骤完成之后,退出dev,在spark主目录会有一个without-hive的tar包,解压至主目录,修改名称与环境变量保持一致


        此时尝试进行spark local模式提交代码


        此时会报一个lof4j日志错误



        笔者在Google时,有人反馈是Hadoop相关jar包没有引入,但是我在spark-env.sh配置hadoop classpath之后,并没有解决该问题。


        于是想到引入相关jar包以解决相关问题。



        一开始根据提示往spark/jars/  引入了第一个slf4j的jar包,但是会报新的错误。



        于是把图中第二个和第三个日志jar包均引入spark/jars/


        最终我们俩次求spark Pi成功



        本次spark源码编译到此初步完成。


        参考链接


        https://cwiki.apache.org/confluence/display/Hive/Hive+on+Spark%3A+Getting+Started

        https://maven.apache.org/download.cgi

        https://mirrors.bfsu.edu.cn/apache/hive/

        https://archive.apache.org/dist/spark/spark-2.3.0/

        https://www.scala-lang.org/download/2.11.8.html

        http://java.sousou88.com/article/15129.html



        文章转载自芒果汁的大数据之旅,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

        评论