1》基礎環境準備:html
jdk1.8.0_101
maven 3.3.9
scala2.11.8
安裝好上述軟件,配置好環境變量,並檢查是否生效。sql
2》配置maven:intellij idea maven配置及maven項目建立express
3》設置maven編譯內存maven
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"ide
4.》使用maven命令編譯源碼。oop
mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -Phive -Phive-thriftserver -DskipTests
5》使用spark自帶打包腳本打包(實際上該腳本調用上述的mvn命令,因此能夠直接跳過第4步,固然若是隻是調試用,不用打成壓縮包,則直接到第4步便可)。post
首先修改腳本:在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的倉庫。lua
<repository>
<id>clouders</id>
<name>clouders Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
url
命令解釋:
--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 ***跳過測試包