下載
下載安裝包:https://spark.apache.org/downloads.html
官網編譯文檔:http://spark.apache.org/docs/2.2.0/building-spark.html
也可以linux:
wget https://www.apache.org/dyn/closer.lua/spark/spark-2.4.5/spark-2.4.5.tgz
安裝scala
版本:scala-2.11.8
wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
解壓文件:
tar -zxvf scala-2.11.8.tgz
配置環境變量
vim /etc/profile
#添加內容:
export SCALA_HOME=/wwwzyy/java/spark/scala-2.11.8/
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin
#生成配置
source /etc/profile
用到編譯自然少不了Maven
注意:版本兼容問題
參考地址:https://www.cnblogs.com/cannel/p/11104190.html
maven 安裝後修改mvn 執行文件
指定jvm 參數
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
也可以設置臨時
[root@hadoop000 spark]# export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
[root@hadoop000 spark]# echo $MAVEN_OPTS
主角來了spark編譯
解壓下載的spark
tar -zxvf spark-2.4.2.tgz
cd spark-2.4.5
修改版本號爲固定版本,避免編譯時腳本自動獲取
vim dev/make-distribution.sh
修改文件中:
**修改**
VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null\
| grep -v "INFO"\
| grep -v "WARNING"\
| tail -n 1)
SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
| grep -v "INFO"\
| grep -v "WARNING"\
| tail -n 1)
SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
| grep -v "INFO"\
| grep -v "WARNING"\
| tail -n 1)
SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
| grep -v "INFO"\
| grep -v "WARNING"\
| 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.4.5 #spark 版本
SCALA_VERSION=2.11.8 #scala 版本
SPARK_HADOOP_VERSION=2.6.0-cdh5.9.3 #對應的hadoop版本
SPARK_HIVE=1 #支持的hive
在pox.xml 文件中添加
<repository>
<id>cloudera</id>
<name>cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
</repository>
#jar包
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
</dependency>
開始編譯 …編譯時間有點長
./dev/make-distribution.sh --name 2.6.0-cdh5.9.3 --tgz -Phadoop-2.6 -Phive -Phive-thriftserver -Pyarn -Pkubernetes -Dhadoop.version=2.6.0-cdh5.9.3
編譯完成後生成文件spark-2.4.5-bin-2.6.0-cdh5.9.3
解壓文件
tar -zxvf spark-2.4.5-bin-2.6.0-cdh5.9.3.tgz
配置對應的環境變量
vim /etc/profile
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin:${SPARK_HOME}/bin
export SPARK_HOME=/wwwzyy/java/spark/spark-2.4.5-bin-2.6.0-cdh5.9.3
source /etc/profile
最後啓動spark
[root@hadoop000 bin]# spark-shell
編譯坑點
Could not resolve dependencies for project org.apache.spark:spark-network-yarn_2.11:jar:2.4.5:
1 spark 編譯支持的maven 版本是有要求指定以上版本,建議用最新版本
2 有時編譯的機器內存不夠
注意編輯機器的內存 一般推薦4G以上的內存
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
3報錯提示:Could not resolve dependencies for project org.apache.spark:spark-launcher_2.11:jar:2.4.5:
./dev/change-scala-version.sh 2.11.8