您的位置:首页 > 运维架构 > Apache

Apache Spark - Building Spark with Maven(使用Maven构建Spark)

2014-06-16 09:39 513 查看


使用Maven构建Spark

Setting up Maven’s Memory Usage
Specifying the Hadoop version
Spark Tests in Maven
Continuous Compilation
Using With IntelliJ IDEA
Building Spark Debian Packages

使用Maven构建Spark需要Maven 3 (构建过程在Maven 3.0.4中已测试) 和 Java 1.6 (以及更高版本).


设置Maven的内存使用

通过设置 
MAVEN_OPTS
变量,
你可以设置Maven比平时使用更多的内存. 我们推荐如下设置:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"


如果运行失败, 你可能看到如下错误信息:
[INFO] Compiling 203 Scala sources and 9 Java sources to /Users/me/Development/spark/core/target/scala-2.10/classes...
[ERROR] PermGen space -> [Help 1]

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


你可以更改之前提到的 
MAVEN_OPTS
 变量.


指定Hadoop版本

由于 HDFS 在不同版本间并不是协议兼容的, 如果打算从HDFS读取数据, 你需要针对环境中不同版本的HDFS构建Spark. 通过指定 “hadoop.version” 属性可以完成这点. 如果没有设置, Spark 默认基于 Hadoop 1.0.4 构建.

对于 Apache Hadoop 1.x, Cloudera CDH MRv1, 以及其他的不支持 YARN的 Hadoop 版本, 使用:
# Apache Hadoop 1.2.1
$ mvn -Dhadoop.version=1.2.1 -DskipTests clean package

# Cloudera CDH 4.2.0 with MapReduce v1
$ mvn -Dhadoop.version=2.0.0-mr1-cdh4.2.0 -DskipTests clean package


对于 Apache Hadoop 2.x, 0.23.x, Cloudera CDH MRv2,  以及其他的支持 YARN的 Hadoop 版本. 可以激活 “yarn-alpha” 或者 “yarn” 属性,并且设置 “hadoop.version”, “yarn.version” 属性:
# Apache Hadoop 2.0.5-alpha
$ mvn -Pyarn-alpha -Dhadoop.version=2.0.5-alpha -Dyarn.version=2.0.5-alpha -DskipTests clean package

# Cloudera CDH 4.2.0 with MapReduce v2
$ mvn -Pyarn-alpha -Dhadoop.version=2.0.0-cdh4.2.0 -Dyarn.version=2.0.0-chd4.2.0 -DskipTests clean package

# Apache Hadoop 2.2.X ( e.g. 2.2.0 as below ) and newer
$ mvn -Pyarn -Dhadoop.version=2.2.0 -Dyarn.version=2.2.0 -DskipTests clean package


Maven测试Spark

测试默认使用 ScalaTest Maven plugin. 部分Spark功能需要打包运行,请首先运行 
mvn
package
 带 
-DskipTests
. 然后运行测试:

 
mvn -Dhadoop.version=... test
.

ScalaTest plugin 同时支持只运行一个特殊测试集, 如下:
$ mvn -Dhadoop.version=... -Dsuites=spark.repl.ReplSuite test


即时编译

使用 scala-maven-plugin 支持增量即时编译. E.g.
$ mvn scala:cc


可以启用即时编译 (i.e. 响应变化). 但是, 这个功能没有广泛的测试.


协同使用 IntelliJ IDEA

安装环境最好是 IntelliJ IDEA 11.1.4. 通过项目根目录下的 pom.xml 文件打开项目之后, 仅需在“Maven Properties”激活 hadoop1 或者 hadoop2 属性即可. 我们没有在 Eclipse/Scala IDE这样尝试过 .


构建 Spark Debian 包

Maven 构建支持构建包含组件 ‘fat-jar’, PySpark, 以及必须的scripts 的 configuration 文件的Debian包. 如下指定即可:
$ mvn -Pdeb -DskipTests clean package


Debian 包将会构建到 assembly/target. 我们对文件名加入一个短 hash码  以辨别不同 SNAPSHOT 版本的构建包.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: