Apache spark2.1.0編譯hadoop-2.6-cdh5.11.2的對應版本

Apache spark2.1.0 編譯 hadoop-2.6-cdh5.11.2 的對應版本

搞了兩天,終於把spark編譯成功了,把編譯過程記錄一下linux

編譯失敗的坑:oracle

  1)linux內存不足,maven編譯過程當中內存溢出maven

  2)找不到cloudera倉庫oop

  3)報各類錯誤url

考慮到maven下載可能會被牆,因而買了國外的雲主機,內存4g,終於編譯成功了,而且編譯速度至關快,只花了8分鐘

成功編譯Apaceh spark成對應的chd版本基本步驟以下(使用make-distribution.sh打包編譯):spa

1.安裝maven,有版本要求3.x以上的,用最新的就好了scala

2.安裝jdk 1.7+,2.x以上的spark儘可能使用 jdk1.8,而且不要使用自帶的open jdk ,下載oracle的jdkcode

3.確認maven,jdk都配置完成server

4.下載spark,解壓xml

5.由於要編譯成對應hadoop cdh版本,因此須要在spark HOME目錄下的pom.xml文件找到repository位置添加

<repository>
<id>cloudera</id>
<name>cloudera repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository> 

 

6.爲了加快編譯速度,修改dev/make-distribution.sh文件

添加如下內容,並把以前的內容註釋,由於默認是經過掃描來得到這些值的,會消耗一些時間

VERSION=2.1.0  #spark的版本
SCALA_VERSION=2.10.6  #scala的版本,能夠在pom.xml文件的scala.version中找到
SPARK_HADOOP_VERSION=2.6.0-cdh5.11.2 #編譯對應具體的hadoop版本
SPARK_HIVE=1  #支持HIVE

7.避免內存溢出

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

能夠根據本身電腦內存狀況調整

8.開始編譯

./dev/make-distribution.sh --name spark2.1.0-cdh5.11.2  --tgz   -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.11.2 -Phive -Phive-thriftserver  -Pyarn


--tgz 打包成 tgz
--name 編譯打包的名稱 spark2.1.0-cdh5.11.2 默認會在前面添加spark2.1.0-bin,若是編譯成功那麼全名應該是 spark2.1.0-bin-spark2.1.0-cdh5.11.2 -Phadoop 對應hadoop的大版本 -Dhadoop.version 對應hadoop的具體版本 -Phive -Pyarn 支持hive,yarn

 

9.等待完成,編譯成功後會在 spark 的home目錄下生成打包的文件

10.而後使用xftp軟件把編譯成功的包傳回本地就行

 ps:博客上的代碼,直接複製到linux文件上可能會用問題,因此建議手動輸入

相關文章
相關標籤/搜索