linux spark编译,Spark源码编译

前言:因为线上生产环境和实际业务需求的复杂性,不可避免地需要修改spark源码,重新编译并测试完成后应用于线上生产环境。本文主要介绍作者在Linux(centos 6.5)上重新编译spark-2.2.1源码的过程,以及部署编译环境所遇到的坑。

一. 下载源码git clone git://github.com/apache/spark.git -b branch-2.2.1  (可能下载不到旧版本)

执行完成后,spark源码会下载在/home/${user_name}/spark目录。也可通过以下方式获取指定版本源码包:

wget https://archive.apache.org/dist/spark/spark-2.2.1/spark-2.2.1.tgz

二. 编译源码./build/mvn -Phadoop-2.7 -Pyarn -Dhadoop.version=2.7.3 -Phive -Phive-thriftserver clean package -Dmaven.test.skip=true

参数介绍:

-Phadoop:Hadoop版本号,默认版本2.6.5;

-Dhadoop.version: 同-Phadoop;

-Pyarn :是否支持Hadoop YARN;

-Phive:是否在Spark SQL 中支持hive,hive默认版本1.2.1;

-Phive-thriftserver:同-Phive;

-Dmaven.test.skip=true:不执行测试用例,也不编译测试用例类;

【填坑一】 SSL connect error

报错信息如下:[root@cbas-virt-20 spark]# ./build/mvn -Phadoop-2.7 -Pyarn -Dhadoop.version=2.7.3 -Phive -Phive-thriftserver clean package -Dmaven.test.skip=trueexec: curl --progress-bar -L https://downloads.typesafe.com/zinc/0.3.15/zinc-0.3.15.tgzcurl: (35) SSL connect errorgzip: stdin: unexpected end of filetar: Child returned status 1tar: Error is not recoverable: exiting nowexec: curl --progress-bar -L https://downloads.typesafe.com/scala/2.11.8/scala-2.11.8.tgzcurl: (35) SSL connect errorgzip: stdin: unexpected end of filetar: Child returned status 1tar: Error is not recoverable: exiting now

./build/mvn: line 119: cd: /root/spark/build/scala-2.11.8/bin/../lib: 没有那个文件或目录

./build/mvn: line 120: cd: /root/spark/build/scala-2.11.8/bin/../lib: 没有那个文件或目录

./build/mvn: line 143: /root/spark/build/zinc-0.3.15/bin/zinc: 没有那个文件或目录

./build/mvn: line 145: /root/spark/build/zinc-0.3.15/bin/zinc: 没有那个文件或目录

Using `mvn` from path: /root/spark/build/apache-maven-3.3.9/bin/mvn

报错分析:

通过./build/mvn编译源码时,下载zinc-0.3.15和scala-2.11.8报错,编译服务器无法与https://downloads.typesafe.com建立SSL连接。

验证(通过wget下载):[root@cbas-virt-20 ~]# wget https://downloads.typesafe.com/zinc/0.3.15/zinc-0.3.15.tgz--2018-04-24 13:46:02--  https://downloads.typesafe.com/zinc/0.3.15/zinc-0.3.15.tgz

正在解析主机 downloads.typesafe.com... 54.230.129.25, 54.230.129.53, 54.230.129.138, ...

正在连接 downloads.typesafe.com|54.230.129.25|:443... 已连接。

无法建立 SSL 连接。

解决方案:

进入./build/mvn修改对应url:方案一:

curl --progress-bar -L http://downloads.typesafe.com/scala/2.11.8/scala-2.11.8.tgz

curl --progress-bar -L http://downloads.typesafe.com/zinc/0.3.15/zinc-0.3.15.tgz

方案二:

curl --progress-bar -L http://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz

curl --progress-bar -L http://downloads.lightbend.com/zinc/0.3.15/zinc-0.3.15.tgz

【填坑二】无效的源发行版

报错信息如下:[INFO] Using zinc server for incremental compilation

[info] 'compiler-interface' not yet compiled for Scala 2.11.8. Compiling...

[info]   Compilation completed in 12.407 s

[warn] Pruning sources from previous analysis, due to incompatible CompileSetup.

[info] Compiling 2 Scala sources and 6 Java sources to /root/spark/common/tags/target/scala-2.11/classes...

[error] javac: 无效的源发行版: 1.8[error] 用法: javac  

[error] -help 用于列出可能的选项

[error] Compile failed at 2018-4-24 14:48:20 [14.062s]

[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] Spark Project Parent POM ........................... SUCCESS [03:33 min]

[INFO] Spark Project Tags ................................. FAILURE [ 36.154 s]

报错分析:

JDK版本不对,spark-2.2.1编译不再支持JDK1.7,所有的编译和运行都只能在JDK1.8上进行。

解决方案:

从官网下载JDK1.8:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlmv jdk-8u171-linux-x64.tar.gz /usr/java/

tar -zxvf jdk-8u171-linux-x64.tar.gz

vim /etc/profile => export JAVA_HOME=/usr/java/jdk1.8.0_171

source /etc/profile

java -version

javac -version

如果发现Linux上的JDK并未更新为JDK1.8,需要再进行如下操作:查看新下载的JDK是否在Linux JDK菜单中:

update-alternatives --config java

update-alternatives --config javac

如果不在,则按如下方式添加:

update-alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_171/bin/java 300

update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.8.0_171/bin/javac 300

再选择相应序号进行系统JDK版本切换(回车确认):

update-alternatives --config java

update-alternatives --config javac

验证:

java -version

javac -version

三. 编译成功确认[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO]

[INFO] Spark Project Parent POM ........................... SUCCESS [  4.242 s]

[INFO] Spark Project Tags ................................. SUCCESS [  3.027 s]

[INFO] Spark Project Sketch ............................... SUCCESS [  9.362 s]

[INFO] Spark Project Local DB ............................. SUCCESS [  3.107 s]

[INFO] Spark Project Networking ........................... SUCCESS [  6.164 s]

[INFO] Spark Project Shuffle Streaming Service ............ SUCCESS [ 10.022 s]

[INFO] Spark Project Unsafe ............................... SUCCESS [  3.123 s]

[INFO] Spark Project Launcher ............................. SUCCESS [  5.299 s]

[INFO] Spark Project Core ................................. SUCCESS [01:31 min]

[INFO] Spark Project ML Local Library ..................... SUCCESS [02:34 min]

[INFO] Spark Project GraphX ............................... SUCCESS [ 23.556 s]

[INFO] Spark Project Streaming ............................ SUCCESS [ 31.368 s]

[INFO] Spark Project Catalyst ............................. SUCCESS [03:23 min]

[INFO] Spark Project SQL .................................. SUCCESS [05:03 min]

[INFO] Spark Project ML Library ........................... SUCCESS [01:35 min]

[INFO] Spark Project Tools ................................ SUCCESS [  9.692 s]

[INFO] Spark Project Hive ................................. SUCCESS [01:02 min]

[INFO] Spark Project REPL ................................. SUCCESS [  5.806 s]

[INFO] Spark Project YARN Shuffle Service ................. SUCCESS [ 12.565 s]

[INFO] Spark Project YARN ................................. SUCCESS [ 32.809 s]

[INFO] Spark Project Hive Thrift Server ................... SUCCESS [ 24.966 s]

[INFO] Spark Project Assembly ............................. SUCCESS [  4.969 s]

[INFO] Spark Integration for Kafka 0.10 ................... SUCCESS [01:00 min]

[INFO] Kafka 0.10 Source for Structured Streaming ......... SUCCESS [ 15.672 s]

[INFO] Spark Project Examples ............................. SUCCESS [ 25.670 s]

[INFO] Spark Integration for Kafka 0.10 Assembly .......... SUCCESS [  5.885 s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 20:10 min

[INFO] Finished at: 2018-04-24T19:37:26+08:00[INFO] Final Memory: 85M/1177M

[INFO] ------------------------------------------------------------------------

作者:伍柒大人_HQQ

链接:https://www.jianshu.com/p/4dc2c532f530

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值