使用maven&&make-distribution.sh編譯打包spark源碼


1》基礎環境准備:

jdk1.8.0_101
maven 3.3.9
scala2.11.8

安裝好上述軟件,配置好環境變量,並檢查是否生效。

2》配置maven:intellij idea maven配置及maven項目創建

3》設置maven編譯內存

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


4.》使用maven命令編譯源碼。

mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -Phive -Phive-thriftserver -DskipTests

5》使用spark自帶打包腳本打包(實際上該腳本調用上述的mvn命令,所以可以直接跳過第4步,當然如果只是調試用,不用打成壓縮包,則直接到第4步即可)。

首先修改腳本:在spark源碼包根目錄下執行如下命令,

vi dev/make-distribution.sh
注釋掉以下內容:位於文件中的120~136行。

#VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
#SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
#SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
#SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
# | grep -v "INFO"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n)

添加以下內容:

VERSION=2.3.0
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.7.3
SPARK_HIVE=1

 


6》修改后保存退出。在源碼包根目錄指定以下命令:

./dev/make-distribution.sh –name 2.7.3 –tgz -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -Phadoop-provided -Phive -Phive-thriftserver -DskipTests

 

 

如果要編譯對應的cdh版本,需要在源碼的根目錄下的pom文件中添加如下的倉庫。
添加 cdh的倉庫。

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

 

命令解釋:

--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 ***跳過測試包


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM