1. 程式人生 > >spark2.1原始碼編譯

spark2.1原始碼編譯

本文介紹spark2.1.0的原始碼編譯

1.編譯環境:

Jdk1.8或以上

Hadoop2.7.3

Scala2.10.4

必要條件:

Maven 3.3.9或以上(重要)

點這裡下載

修改/conf/setting.xml

<mirror>

        <id>alimaven</id>

        <name>aliyun maven</name>

        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

        <mirrorOf>central</mirrorOf>

</mirror>


2. 下載http://spark.apache.org

2.1Download

 

2.2. 解壓

tar -zxvf spark-2.1.0.tgz

3. 進入主目錄,修改編譯檔案,進行編譯

修改spark-2.1.0/dev目錄下的make-distribution.sh ,註釋掉原來的指定版本,可以節省時間

vi make-distribution.sh


溫馨提示:

該檔案中如圖所示,czf前少個“-”,需要自己修改

注意:

如果你用的hadoop版本是cdh的,那麼需要修改spark根目錄pom.xml檔案,新增cdh的依賴

<repository>
        <id>cloudera</id>
        <name>cloudera Repository</name>
        <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
新增在<repositorys></repositorys>裡

3.1設定記憶體

export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"

3.2編譯

./dev/make-distribution.sh \

--name 2.7.3 \

--tgz   \

-Pyarn \

-Phadoop-2.7 \  -Dhadoop.version=2.7.3 \

-Phive -Phive-thriftserver \

-DskipTests clean package


接下來就靜靜地等待吧,第一次編譯時間可能很長,幾小時或十幾小時,取決於網速,因為要下載很多包

命令解釋:

--name 2.7.3  ***指定編譯出來的spark

名字,name=

--tgz ***壓縮成tgz格式

-Pyarn \ ***支援yarn平臺

-Phadoop-2.7 \  -Dhadoop.version=2.7.3 \ ***指定hadoop版本為2.7.3

-Phive -Phive-thriftserver \ ***支援hive

-DskipTests clean package ***跳過測試包


好了,spark的編譯到此就結束了

下面分享一下編譯遇到的一些問題

錯誤1

Failed to execute goal on project spark-launcher_2.11:

Could not resolve dependencies for project org.apache.spark:spark-launcher_2.11:jar:2.1.0:

Failure to find org.apache.hadoop:hadoop-client:jar:hadoop2.7.3 in https://repo1.maven.org/maven2 was cached in the local repository,

resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

解決:遇該錯誤,原因可能是編譯命令中有引數寫錯。。。。(希望你沒遇到大笑

錯誤2

+ tar czf 'spark-[info] Compile success at Nov 28, 2017 11:27:10 AM [20.248s]-bin-2.7.3.tgz' -C /zhenglh/new-spark-build/spark-2.1.0 'spark-[info] Compile success at Nov 28, 2017 11:27:10 AM [20.248s]-bin-2.7.3'

tar (child): Cannot connect to spark-[info] Compile success at Nov 28, 2017 11: resolve failed

編譯的結果沒打包:

spark-[info] Compile success at Nov 28, 2017 11:27:10 AM [20.248s]-bin-2.7.3

這個錯誤可能第一次編譯的人都會遇到

解決:見溫馨提示吐舌頭