编译Spark源码与单个子项目GraphX

3 篇文章 0 订阅
3 篇文章 0 订阅

编译Spark源码与单个子项目GraphX

系统环境:ubuntu18.04 LTS 初装

Spark源码获取

实验选用spark-2.2.0版本,该版本目前有最新的中文文档,在Apache官网下载,下载地址为:https://spark.apache.org/downloads.html
官网文档http://spark.apachecn.org/docs/cn/2.2.0/building-spark.html
在这里插入图片描述
如果只需要使用spark,可以直接下载pre-built版本。

需要安装的支持环境

Java环境:实验证实不能使用OpenJDK,需要使用SunJDK,本实验中使用的是jdk1.8.0_181。

Scala环境:版本为scala-2.11.8,(需要翻墙,socks开启全局代理模式)下载地址为:https://downloads.typesafe.com/scala/2.11.8/scala-2.11.8.tgz

Maven环境:版本为3.5.4,官网下载。

编译过程中需要的支持加速编译的包:zinc-0.3.11,(需要翻墙,socks开启全局代理模式),下载地址为:https://downloads.typesafe.com/zinc/0.3.11/zinc-0.3.11.tgz

配置环境

在单用户 ~/.bashrc 文件中进行路径配置,在bash启动时export路径

相关引用统一放置在 /home/wj/apps/ 目录下,对Java,scala,maven安装包解压,并在文件 ~/.bashrc 中配置路径。

export M2_HOME=/home/wj/apps/apache-maven-3.5.4
export PATH=${M2_HOME}/bin:$PATH

export JAVA_HOME=/home/wj/apps/jdk1.8.0_181
export JRE_HOME=/home/wj/apps/jdk1.8.0_181/jre
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH

export SCALA_HOME=/home/wj/apps/scala-2.11.8
export PATH=${SCALA_HOME}/bin:$PATH

使路径修改生效:

source ~/.bashrc 

测试:
在这里插入图片描述
环境配置成功!

编译spark源码

编译可以使用mavensbt以及自带脚本编译 ./dev/make-distribution.sh,mvn命令仅编译spark源码,如果需要生成可发行版本,则需要使用脚本进行编译。

编译前配置

  1. 解压spark源码,在spark目录下进行操作。

  2. 将scala-2.11.8文件夹和zinc-0.3.11文件夹拷贝至build目录下,不拷贝的话,在编译过程中会自动下载,但是因为防火墙的原因,一般情况下都会失败,除非翻墙并使用全局代理。

  3. 将scala-2.11.8文件夹和zinc-0.3.11文件夹拷贝至build目录下,不拷贝的话,在编译过程中会自动下载,但是因为防火墙的原因,一般情况下都会失败,除非翻墙并使用全局代理。

    在根目录下的pom.xml文件中,对应修改为:http://maven.aliyun.com/nexus/content/groups/public/
    在这里插入图片描述

  4. 使用scala版本为2.10和2.11时,需要执行dev目录下的脚本,修改一下版本支持。
    在这里插入图片描述
    修改完成,开始进行编译,编译分三种方式。

使用mvn进行编译

build/mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.5 -DskipTests clean package
命令中指定了对应编译后spark性能支持的选项。
第一次编译是会下载大量的maven编译依赖包,花费时间相对较长。
在这里插入图片描述

使用./dev/make-distribution.sh 构建一个可发行的版本

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn

在没有安装R语言的情况下,去掉 --r 和 -Psparkr 选项,使用如下命令进行编译

./dev/make-distribution.sh --name custom-spark --pip --tgz -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn

参数行 -Psparkr 用于支持R语言运行在spark上的库
参数行 --r 和 --pip 分别用于支持R语言和Python语言

如果需要编译支持R语言的spark,需要安装R插件,参照如下文章:
https://blog.csdn.net/sddyljsx/article/details/81051078
编译成功,但是没有成功构建发行包,需要安装python以及相关的包setuptools
在这里插入图片描述
最终构建成可发行的压缩包
在这里插入图片描述

使用mvn编译单个子项目graphx

./build/mvn -pl :spark-graphx_2.11 clean install 

在这里插入图片描述
生成的graphx的包为spark-graphx_2.11-2.2.0.jar
在这里插入图片描述
至此,编译spark源码和编译spark单个子项目完成

另外:
编译 spark-master:
需要scala版本为2.11.12
需要zinc版本为0.3.15
可编译成功!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值