1》基础环境准备:
jdk1.8.0_101
maven 3.3.9
scala2.11.8
安装好上述软件,配置好环境变量,并检查是否生效。
note:
2》maven 3.3.9 : 需要修改maven的安装目录下的conf/settings.xml文件中添加如下配置,以达到jar下载加速的效果
<!-- 阿里云中央仓库 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
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 clean package
5》使用spark自带打包脚本打包。:
首先修改脚本:在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 dev –tgz -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -Phadoop-provided -Phive -Phive-thriftserver
Note :
如果要编译对应的cdh版本,需要在源码的根目录下的pom文件中添加如下的仓库。
添加 cdh的仓库。
<repository>
<id>clouders</id>
<name>clouders Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>