为了账号安全,请及时绑定邮箱和手机立即绑定

Spark2.2.0源码构建阅读

标签:
Spark

源码下载

源码获取有两种渠道:一种是通过Spark官网直接下载,第二种是通过github直接将spark的代码clone下来。
官网地址:https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0.tgz
github地址:https://github.com/apache/spark/tree/branch-2.2
解压后目录:

webp

解压目录


源码编译

工具版本
maven3.3.9+
jdk8+

设置maven内存

<pre>
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
</pre>

如果不调大maven内存,有可能会报:
<pre>

[INFO] Compiling 203 Scala sources and 9 Java sources to /Users/me/Development/spark/core/target/scala-2.11/classes...
[ERROR] Java heap space -> [Help 1]
</pre>

Maven源码编译

自动化构建

在源码build目录下面有一个maven的独立安装脚本,这样能够帮助你轻松构建源码,这个脚本会自动下载和安装所有必须的构建要求。
<pre>
./build/mvn -DskipTests clean package
</pre>

指定Hadoop版本

可以通过hadoop.version指定Hadoop版本,如果未设置则采用默认的2.6.x版本,如果yarn的版本与Hadoop不一致,可以使用yarn.version来指定版本。
<pre>
./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
</pre>

Hive和JDBC支持

Hive默认版本是1.2.1
<pre>

With Hive 1.2.1 support

./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package
</pre>

使用Mesos

如果使用Mesos作为资源管理容器,可以指定mesos:
<pre>
./build/mvn -Pmesos -DskipTests clean package
</pre>

单独构建子模块

如果想要单独构建子模块,可以是使用maven的-pl参数。spark-streaming_2.11是其maven坐标的artifactId,定义在streaming/pom.xml中。
<pre>
./build/mvn -pl :spark-streaming_2.11 clean install
</pre>

SBT源码编译

官方推荐打包使用maven来构建,但因为SBT支持日常的开发,所以它能够更快速的迭代编译。
<pre>
./build/sbt package
</pre>

编译完成

webp

源码编译

IDEA导入源码

Rebuild Project

打开idea后,open之前刚才编译好的目录,需要做一些额外的操作,否则Rebuild Project会失败。

1、点击FileProject Structure->Model->spark-streaming-flume-sink_2.11,右键target目录取消Exclude。

webp

target取消Exclude

2、当前target->scala-2.11->src_managed->maincompiled_avro右键标记为Source目录。
3、Build->Rebuild Project 项目即可

环境配置

Spark的配置都在conf目录下面,可以将spark-env.sh.template复制一份spark-env.sh,进行相应的配置(直接运行可skip)。

Spark运行

sbin/start-master.sh
sbin/start-slave.sh spark://${localhost}:7077
${localhost}为你主机,如果不知道可以查看master的打印日志,会将其打印出来。
检查WebUI:http://localhost:8080/

webp

webUI

运行作业:bin/run-example SparkPi
Pi is roughly 3.1471357356786784
ok搭建完成



作者:零度沸腾_yjz
链接:https://www.jianshu.com/p/90e5696fd3d7


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消