spark2.0.1源码编译

Posted 傲气雄鹰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spark2.0.1源码编译相关的知识,希望对你有一定的参考价值。

一、编译源码步骤演示详解

. 编译spark环境要求

1、必须在linux系统下编译(以centos6.4为例)

2、编译使用的JDK版本必须是1.6以上(以JDK1.8为例)

3、编译需要使用Maven版本3.0以上(以Maven3.3.9为例)

4、编译需要使用Scala(以scala-2.11.8为例)

. 编译spark所需要的包

1、spark-2.0.1.tgz:下载spark编译的源码包,提供apache下载页面http://archive.apache.org/dist/spark/spark-2.0.1/

2、scala-2.11.8.tgz:提供下载页面 http://www.scala-lang.org/download/2.11.8.html

3、zinc-0.3.9.tar.gz:提供下载页面 http://pan.baidu.com/s/1boJ0nIR

注:2、3两步的包,可不用提前下,如不提供,则在编译时,会通过maven源自动下载下来,为编译时节省时间,可选取先下载后,再放到相应的目录下

 

===================================  编译开始   ===================================

第一步:解压spark-2.0.1.tgz源码安装包

第二步:JDK、Maven安装及环境变量的配置,可参照上一篇hadoop编译中提到的来配置,在这不再详述;

第三步:进入/opt/work_dh/software/comm/spark-2.0.1/dev目录下,修改make-distribution.sh文件(注:此文件由于编译的版本一致,可能存在不同的目录下,请自行查找),修改内容如下:

将该文件中四个变量之前的值注释,改为对应版本的值即可;此步非必须,若不给定,它也会从maven源中下载,为节省编译时间,直接给定;

第四步:进入/opt/work_dh/software/comm/spark-2.0.1目录下的pom.xml文件,修改scala版本号,两处地方,如下图:(注:若scala就是spark2.0.1默认支持的版本,则此步跳过

<scala.version>2.11.8</scala.version>

第五步:修改maven的镜像源,进入到/opt/work_dh/app/apache-maven-3.3.3/conf目录下,修改setting.xml文件,内容如下:

<mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>*</mirrorOf>
      <name>Nexus aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror> 

第六步:将上述下载的scala-2.11.8.tgz、zinc-0.3.9.tar.gz解压到spark源码包的build目录下,如下图所示:

第七步:使用make-distribution.sh方式进行编译,进入/opt/work_dh/software/comm/spark-2.0.1/dev目录(make-distribution.sh所在目录)下运行如下命令:

Apache编译:
./make-distribution.sh --tgz \\
-Phadoop-2.6 \\
-Dhadoop.version=2.7.3 \\
-Pyarn \\
-Phive -Phive-thriftserver

编译成功!看到如下界面后,说明编译成功了,在手动下载源码包情况,编译的时间大概需要半个小时

 

===================================  编译结束   ===================================

 

以上是关于spark2.0.1源码编译的主要内容,如果未能解决你的问题,请参考以下文章

是否可以动态编译和执行 C# 代码片段?

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

Notepad++编辑器——Verilog代码片段直接编译

导致资产预编译在heroku部署上失败的代码片段

如何有条件地将 C 代码片段编译到我的 Perl 模块?

Spark 2.0 数据集与数据帧