源碼
將項(xiàng)目源碼clone源碼到本地
項(xiàng)目地址:https://github.com/apache/spark
git clone git@github.com:apache/spark.git
編譯
spark項(xiàng)目同時(shí)支持maven和sbt兩種方式劫狠,以maven為例:
最簡(jiǎn)單的編譯:
./build/mvn -DskipTests clean package
使用 -D 和 -P參數(shù)定制不同的編譯版本:
# Apache Hadoop 2.6.X
./build/mvn -Pyarn -DskipTests clean package
# Apache Hadoop 2.7.X and later
./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
# With Hive 1.2.1 support
./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package
編譯子項(xiàng)目:
上述命令為全量編譯拴疤,我們可以選擇只編譯某個(gè)子模塊:
./build/mvn -pl :spark-streaming_2.11 clean install
發(fā)布
./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes
執(zhí)行上述命令,會(huì)在dist目錄生成發(fā)布軟件包独泞,與在spark官網(wǎng)下載的軟件包是一樣的呐矾。
需要注意:
-
安裝 R 和 pip 環(huán)境
-
R安裝插件: install.packages('knitr') install.packages("rJava")
https://github.com/hannarud/r-best-practices/wiki/Installing-RJava-(Ubuntu)
如果覺(jué)得1 2 麻煩,可以不編譯 pip和r package阐肤,即不支持python和r
./dev/make-distribution.sh --name custom-spark --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn -Pkubernetes
參考:
https://spark.apache.org/docs/latest/building-spark.html