Spark2.2.0源碼構(gòu)建閱讀

源碼下載

源碼獲取有兩種渠道:一種是通過(guò)Spark官網(wǎng)直接下載,第二種是通過(guò)github直接將spark的代碼clone下來(lái)。
官網(wǎng)地址: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+

設(shè)置maven內(nèi)存

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

如果不調(diào)大maven內(nèi)存,有可能會(huì)報(bào):
<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源碼編譯

自動(dòng)化構(gòu)建

在源碼build目錄下面有一個(gè)maven的獨(dú)立安裝腳本,這樣能夠幫助你輕松構(gòu)建源碼,這個(gè)腳本會(huì)自動(dòng)下載和安裝所有必須的構(gòu)建要求。
<pre>
./build/mvn -DskipTests clean package
</pre>

指定Hadoop版本

可以通過(guò)hadoop.version指定Hadoop版本,如果未設(shè)置則采用默認(rèn)的2.6.x版本,如果yarn的版本與Hadoop不一致,可以使用yarn.version來(lái)指定版本。
<pre>
./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
</pre>

Hive和JDBC支持

Hive默認(rèn)版本是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>

單獨(dú)構(gòu)建子模塊

如果想要單獨(dú)構(gòu)建子模塊,可以是使用maven的-pl參數(shù)。spark-streaming_2.11是其maven坐標(biāo)的artifactId,定義在streaming/pom.xml中。
<pre>
./build/mvn -pl :spark-streaming_2.11 clean install
</pre>

SBT源碼編譯

官方推薦打包使用maven來(lái)構(gòu)建,但因?yàn)镾BT支持日常的開發(fā),所以它能夠更快速的迭代編譯。
<pre>
./build/sbt package
</pre>

編譯完成

源碼編譯

IDEA導(dǎo)入源碼

Rebuild Project

打開idea后,open之前剛才編譯好的目錄,需要做一些額外的操作,否則Rebuild Project會(huì)失敗。

1、點(diǎn)擊File→Project Structure->Model->spark-streaming-flume-sink_2.11,右鍵target目錄取消Exclude。

target取消Exclude

2、當(dāng)前target->scala-2.11->src_managed->main→compiled_avro右鍵標(biāo)記為Source目錄。
3、Build->Rebuild Project 項(xiàng)目即可

環(huán)境配置

Spark的配置都在conf目錄下面,可以將spark-env.sh.template復(fù)制一份spark-env.sh,進(jìn)行相應(yīng)的配置(直接運(yùn)行可skip)。

Spark運(yùn)行

sbin/start-master.sh
sbin/start-slave.sh spark://{localhost}:7077{localhost}為你主機(jī),如果不知道可以查看master的打印日志,會(huì)將其打印出來(lái)。
檢查WebUI:http://localhost:8080/

webUI

運(yùn)行作業(yè):bin/run-example SparkPi
Pi is roughly 3.1471357356786784
ok搭建完成

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容