您的位置:首页 > 其它

spark学习笔记:使用maven编译spark

2017-08-22 15:11 375 查看

前言

适用版本spark2.2

首先下载安装maven,设置并更新新环境变量,使用命令验证是否安装成功 :

mvn -v


因为在编译过程中会下载很多依赖包,maven默认镜像地址源在国外,为了加速下载过程,可以将其设置为国内镜像源。修改maven目录下的./conf/setting.xml文件,在mirrors标签内加入:

<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>


进入spark源码文件夹,执行命令:

mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.1 -DskipTests clean package


出现错误,原因不明:

[INFO] Spark Project Catalyst ............................. SUCCESS [02:45 min]
[INFO] Spark Project SQL .................................. FAILURE [23:42 min]
[INFO] Spark Project ML Library ........................... SKIPPED


然而尝试着执行以下命令:

./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn


仍然报错:

[INFO] Spark Project Launcher ............................. SUCCESS [ 47.133 s]
[INFO] Spark Project Core ................................. FAILURE [01:36 min]
[INFO] Spark Project ML Local Library ..................... SUCCESS [ 15.356 s]


但是此时再次执行

mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.1 -DskipTests clean package


结果却编译成功了!莫名其妙,原因暂时不清楚。

官方推荐在编译之前设置maven的内存:

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


但是没设置也没报错。

官方编译指南

在编译成功之后,maven把下载过的依赖包都保存在本地。为方便以后的编译或其他局域网机器的编译,可以在master上搭建一个maven局域网仓库。这需要安装tomcat以及nexus.war插件,这在另一篇文章中叙述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: