源码下载
源码获取有两种渠道:一种是通过Spark官网直接下载,第二种是通过github直接将spark的代码clone下来。
官网地址:https://d3kbcqa49mib13.cloudfront.net/spark-2.2.0.tgz
github地址:https://github.com/apache/spark/tree/branch-2.2
解压后目录:
源码编译
工具 | 版本 |
---|---|
maven | 3.3.9+ |
jdk | 8+ |
设置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>
编译完成
源码编译IDEA导入源码
Rebuild Project
打开idea后,open之前刚才编译好的目录,需要做一些额外的操作,否则Rebuild Project会失败。
1、点击File→Project Structure->Model->spark-streaming-flume-sink_2.11,右键target目录取消Exclude。
target取消Exclude2、当前target->scala-2.11->src_managed->main→compiled_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/
运行作业:bin/run-example SparkPi
Pi is roughly 3.1471357356786784
ok搭建完成
网友评论