Apache Spark - Building Spark with Maven(使用Maven构建Spark)
2014-06-16 09:39
513 查看
使用Maven构建Spark
Setting up Maven’s Memory UsageSpecifying 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 版本的构建包.
相关文章推荐
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Maven构建Java工程(Building Java Projects with Maven)
- 使用Apache Spark和BigDL来构建深度学习驱动的大数据分析
- Building a Movie Recommendation Service with Apache Spark & Flask - Part 1
- Building a Movie Recommendation Service with Apache Spark & Flask - Part 2