Feeling

    三人行,必有我师焉

   ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  84 随笔 :: 0 文章 :: 392 评论 :: 0 Trackbacks
Spark源代码下载地址: http://spark.apache.org/downloads.html

下载后,直接用 Scala IDE 通过已存在的项目导入到Eclipse workspace中去,然后Eclipse会自动进行编译。第一次编译会报很多错误,不过总的来说,导致编译错误的源头有三个:
1、Scala编译器版本错误
2、Eclipse Maven插件不能自动识别spark project的一些pom,报Plugin execution not covered by lifecycle configuration异常
3、一些项目,maven会自动生成scala和java文件,但是这些自动生成的代码文件没有配置在eclipse项目的classpath里。

针对第一种错误,比较简单,对于每个scala项目,右键属性选择spark对应的scala编译器版本。



当然spark代码里的项目有几十个,只能手工一个个设置了,比较傻,没办法,还不停的弹出对话框,不停地回车吧。

编译的难点主要在第二种错误上,比如spark-sql项目的pom, 里面有个build-helper-maven-plugin,它下面的execution,eclipse maven插件无法识别,报Plugin execution not covered by lifecycle configuration异常,解决方案参见 https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html,先使用 Eclipse quick-fix选项自动修复,忽略此 maven goal,Eclipse 会为 pom.xml自动添加一段xml代码,包含在 pluginManagement section中,里面有一段 <action><ignore/></action>,此处手动修改成
<action>
    <execute>
        <runOnIncremental>false</runOnIncremental>
    </execute>
</action>
然后右键 maven update project 就OK了。

一共有5个project需要修改pom,如图


修改pom后重新编译,依旧会报一些错误,这些错误都是由于maven自动生成的java和scala代码没有添加到classpath里导致的编译错误,只需要手工添加一下即可,需要手工添加项目有 spark-streaming-flume-sink 的 src_managed\main\compiled_avro 目录 和 spark-sql 项目的 test\gen-java 目录。

全部编译好以后的截图:


修改完以后,Spark代码全部编译下来大概耗时25分钟左右(CPU 双核 I7 4600)

原文地址:http://www.blogjava.net/cnfree/archive/2016/11/08/431965.html
posted on 2016-11-08 13:12 三人行,必有我师焉 阅读(1072) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: