我爱编程程序员大数据

spark-2.1.0-bin-2.6.0-cdh5.x源码编译

2018-03-16  本文已影响0人  sparkle123

前置条件:

CentOS6.7
JDK1.7+
Maven 3.3.9
Spark2.1.0

1.到spark官网上下载spark2.1.0的源码


spark-download.png

2.执行mkdir source新建目录,在此目录下通过wget下载源代码
wget https://archive.apache.org/dist/spark/spark-2.1.0/spark-2.1.0.tgz

3.在source目录下执行tar -zxvf spark-2.1.0.tgz解压tgz代码包。

4.设置Maven的使用内存,默认的maven内存可能不够用
export MAVEN_OPTS="-Xmx2g XX:ReservedCodeCacheSize=512m"

5.使用mvn编译

$ echo $HADOOP_HOME
/home/hadoop/app/hadoop-2.6.0-cdh5.7.0

6.编译一个可以运行的tgz包(推荐使用),在spark代码解压的根目录下执行命令:

./dev/make-distribution.sh  \
--name 2.6.0-cdh5.7.0 \
--tgz \
-Pyarn -Phadoop-2.6 \
-Phive -Phive-thriftserver  \
-Dhadoop.version=hadoop-2.6.0-cdh5.7.0 

生成spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz

7.Spark2.1.0默认支持的scala版本是2.11.8,如果想要使用2.10的话,编译前需要
./dev/change-scala-version.sh 2.10

[ERROR] Failed to execute goal on project spark-launcher_2.11: Could not resolve dependencies for project org.apache.spark:spark-launcher_2.11:jar:2.1.0: Could not find artifact org.apache.hadoop:hadoop-client:jar:hadoop-2.6.0-cdh5.7.0 in central (https://repo1.maven.org/maven2) -> [Help 1]

那么需要在pom.xml里面配置:

<repository>
      <id>cloudera</id>
      <name>cloudera Repository</name>
       <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
pom仓库配置.png

was cached in the local repository,
resolution will not be reattemped until the update interval of nexus has
......

对策:

1.去仓库目录把 xxx.lastUpdated文件全部删除,重新执行maven命令
2.编译命令后面加上 -U

7.编译成功(VPN打开耗时45~46分钟):


编译成功1.png 编译成功2.png

8.在spark解压的源代码的根路径下可以看到编译成功的spark包,名称形如:

spark-2.1.0-bin-2.6.0-cdh5.7.0.tgz
(spark-spark版本号-bin-hadoop版本号-CDH社区版本号)

以上内容参考:http://spark.apache.org/docs/2.1.0/building-spark.html

上一篇下一篇

猜你喜欢

热点阅读