windos下spark2.3.2源码编译

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


前期注意事项

  • 本人系统环境是windows10,IDE 为idea2017
  • 本次编译是通过Maven编译,Maven版本为3.3.9,不用SBT编译
  • 自Spark 2.2.0起,对Java 7的支持已被删除!
  • 给Maven多配置一点内存,防止编译期间OOM异常,官网推荐

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运行编译后的代码

  • 打开IntelliJ idea open 编译过后的源代码,等待加载indexing,不要选import sbt project
  • 找到org.apache.spark.examples中的一个example添加本地方法,测试运行。


    image.png

官网中的提示:

  • “Rebuild Project” 第一次编译项目的时候可能失败,点击这个按钮“Generate Sources and Update Folders For All Projects”


  • 有一些模块路径是idea识别不了的,需要手工选一下,在“Project Settings” 然后选中 “Modules” 模块。
    • spark-hive: add v0.13.1/src/main/scala
    • spark-streaming-flume-sink: add target\scala2.11\src_managed\main\compiled_avro
    • spark-catalyst: add target\scala-2.11\src_managed\main
      比如idea执行报错,无法找到SparkFlumeProtocol类,进入view=>tool window=>maven project中找到Spark Project External Flume Sink模块,右键选择Generate Sources and update Folders,并在lifecycle中compile改模块。


  • 执行测试类的时候出现Exception in thread "main" java.lang.NoClassDefFoundError: 错误
    解决方法:
    Menu -> File -> Project Structure -> Modules -> spark-examples_2.11 -> Dependencies 添加依赖 jars -> {spark dir}/spark/assembly/target/scala-2.11/jars/
  • 如果还碰到哪个模块导致找不到类在idea中选中单个maven模块重新mvn clean compile一下

其他编译命令

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}"


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335

推荐阅读更多精彩内容