Spark成长之路(1)-搭建环境

来源:互联网 发布:软件测试核心期刊 编辑:程序博客网 时间:2024/06/13 17:22

参考文章:
搭建Spark源码研读和代码调试的开发环境
Apache Spark 源码阅读

环境

工具 版本 scala 2.12.2 java 1.8.0_92 sbt 0.13.13 maven 3.3.9 IDEA CE 2017.1.4 macOS 10.12.5

git clone

git clone https://github.com/apache/spark.git

编译源码

build/mvn -T 4 -DskipTests clean package

比较耗时,我在公司编译的,断断续续耗时大约2个小时。编译成功后如下图所示:

这里写图片描述

IDEA import

Menu -> File -> Open -> {spark dir}/pom.xml -> Open as Project

这个过程还是挺快的,几分钟就搞定了。成功以后的项目结构如下:

这里写图片描述

增量开发

我们在开发过程中,有一点小的修改,想看下效果,不想再重新编译一遍所有的依赖,而只想把新的改变编译一下。可以使用sbt的增量编译。

build/sbt clean package//首次全量编译export SPARK_PREPEND_CLASSES=true//增量或build/sbt ~compile//增量编译

ScalaStyle检查与IDEA自动格式化冲突

scalastyle-config.xml配置了代码风格检查,但是与IDEA默认的格式化代码有部分冲突,我使用中报如下错误

//使用Javadoc样式缩进注释Use Javadoc style indentation for multiline comments//一行字符超过了100个File line length exceeds 100 characters//注释的开头要插入空格Insert a space after the start of the comment

为了保持和spark官方的分割保持一样,我们修改IDEA的代码风格,首先接入codestyle

Preferences->Editor->Code Style->Scala

这里写图片描述

修改如下:

  • ScalaDoc
    • 取消Enable scaladoc formatting
    • 取消Use scaladoc indent for leading asterisk
  • Wrapping and Braces
    • Method declaration parameters
      • 取消 Align when multiline
    • 勾选 Ensure right margin is not exceeded(Code style下设置Right margin=100)

上下的一个注释,是因为源码本身不规范,结尾以**/结尾了。删掉以后就恢复了。这只是解决了报错信息,但是还有很多代码风格和源码不一致,所以最后为了不造成之前的风格因为本地IDEA的格式化造成变更,建议局部格式化代码。不要使用全局格式化。看看能不能找到源码开发人员使用的Code Style配置文件,直接导入最好。

Code Style Guide