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
--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
這個錯誤可能第一次編譯的人都會遇到
解決:見溫馨提示