大数据Spark在简书

windos下spark2.3.2源码编译

2018-11-09  本文已影响9人  梧上擎天

当时在学习spark的时候,编译过spark2.11源码,当时也遇到过不少坑,导致编译过程坎坷。时过境迁,目前spark的最新版本是spark2.3.2。这次跟着官网指导编译一下最新代码。


前期注意事项

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

ReservedCodeCacheSize设置是可选的,但建议都加上否则可能出现警告或者异常。

[INFO] Compiling 203 Scala sources and 9 Java sources to /Users/me/Development/spark/core/target/scala-2.11/classes...
[ERROR] Java heap space -> [Help 1]

建议修改maven的安装目录下的conf/settings.xml文件中添加如下配置,以达到jar下载加速的效果

 <!-- 阿里云中央仓库 -->
 <mirrors>
     <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

构建

去官网下载源码包

http://spark.apache.org/downloads.html

执行命令

./build/mvn -DskipTests clean package

spark编译要在 bash环境下进行 如git的bash环境,否则可能报错

开始编译 ,运行效果如下图:



此期间别急。机器不好的,网不好的,稍安勿躁,阿弥陀佛,等就对了。



37分钟后编译全部模块完成。

IntelliJ运行编译后的代码

官网中的提示:

其他编译命令

mvn 还可以加-P参数指定hadoop版本,指定构建Hive 、JDBC 、Mesos 、Kubernetes 、Kafka、Flume 的支持版本

./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
./build/mvn -Pyarn -Phive -Phive-thriftserver -DskipTests clean package
./build/mvn -Pmesos -DskipTests clean package
./build/mvn -Pkubernetes -DskipTests clean package
./build/mvn -Pkafka-0-8 -DskipTests clean package
./build/mvn -Pflume -DskipTests clean package

指定单一模块进行构建

如果修改了一个模块的源代码,想构建后跑起来的话,可以用-pl命令构建单个模块,节省大量时间。

./build/mvn -pl :spark-streaming_2.11 clean install

官网还推荐用make-distribution.sh脚本继续打包编译

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

***bash环境下运行上面命令,这个脚本和mvn本质一样,但会帮助我们自动设置maven参数和jvm参数,如脚本中就有这段代码export MAVEN_OPTS="${MAVEN_OPTS:--Xmx2g -XX:ReservedCodeCacheSize=512m}"


上一篇 下一篇

猜你喜欢

热点阅读