下载
下载解压Spark2.4.5源码

下载解压Maven3.6.2,设置Maven环境变量:
# MAVEN_HOME
MAVEN_HOME=/home/iie4bu/app/apache-maven-3.6.2
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$MAVEN_HOME/bin:$PATH
export MAVEN_OPTS="-Xms8g -XX:ReservedCodeCacheSize=2g"
export PATH=$PATH
执行source ~/.bashrc使得配置生效。
下载解压scala-2.11.12,设置环境变量:
# SCALA_HOME
SCALA_HOME=/home/iie4bu/app/scala-2.11.12
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$MAVEN_HOME/bin:$SCALA_HOME/bin:$PATH
第一种方式
./build/mvn -Pyarn -Phadoop-2.6 -Phive -Phive-thriftserver -Dhadoop.version=2.6.0-cdh5.15.1 -DskipTests clean package
第二种方式:make-distribution(推荐)
./dev/make-distribution.sh \
--name 2.6.0-cdh5.15.1 \
--pip --r \
--tgz \
-Phadoop-2.6 \
-Phive \
-Phive-thriftserver \
-Pyarn
修改./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
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.6.0-cdh5.15.1
SPARK_HIVE=1
#export MAVEN_OPTS="${MAVEN_OPTS:--Xmx2g -XX:ReservedCodeCacheSize=1g}"
export MAVEN_OPTS="${MAVEN_OPTS:--Xmx8g -XX:ReservedCodeCacheSize=2g}"
修改pom.xml文件内容:添加仓库:
<repository>
<id>cloudera</id>
<name>cloudera repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
如果在编译过程中,看到的异常信息不太懂,可以在编译命令后面添加 -X,就能看到更详细的编译信息。
本文详细介绍了如何从源码编译Spark2.4.5,包括下载和配置Maven、Scala环境,使用两种编译方式,以及如何解决编译中遇到的问题。
1446

被折叠的 条评论
为什么被折叠?



