Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法
2014-07-24 01:11
411 查看
fesh个人实践,欢迎经验交流!本文Blog地址:/article/5742957.html
本文编译方法所支持的hadoop环境是Hadoop-2.2.0,YARN是2.2.0,JAVA版本为1.8.0_11,操作系统Ubuntu14.04
Spark1.0.0 源码下载地址: http://mirror.bit.edu.cn/apache/spark/spark-1.0.0/spark-1.0.0.tgz
Spark1.0.1 源码下载地址:http://apache.fayea.com/apache-mirror/spark/spark-1.0.1/spark-1.0.1.tgz
1、spark自带编译方法
注:不同版本的Spark编译命令有所不同,请先查看$SPARK_HOME/make-distribution.sh文件。
使用spark中自带的编译脚本make-distribution.sh (需要先安装Maven ,参见《Maven-3.2.2安装配置》)
脚本文件make-distribution.sh可以生成部署包,其参数有:
--tgz: Additionally creates spark-$VERSION-bin.tar.gz
--hadoop VERSION: Builds against specified version of Hadoop.
--with-yarn: Enables support for Hadoop YARN.
--with-hive: Enable support for reading Hive tables.
--name: A moniker for the release target. Defaults to the Hadoop verison.
如果一切顺利,会在$SPARK_HOME/assembly/target/scala-2.10目录下生成目标文件
(好像Java版本1.8在这里有版本问题?默认在1.6环境下,但我居然编译成功了,呵呵)
(注:之前加了--with-tachyon 我总是编译成功,但生成tgz部署包失败,不知道为什么。今天我在JDK1.7.0_51环境(应该与JDK版本无关)下,去掉了--with-tachyon ,编译成功,并且生成了spark-1.0.1-
bin-2.2.0.tgz部署包)
在$SPARK_HOME/assembly/target/scala-2.10目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME/examples/target/scala-2.10目录下生成: spark-examples-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME/dist/lib目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar 和 spark-examples-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME根目录下生成Spark部署包:spark-1.0.1-bin-2.2.0.tgz
编译结果:
2、SBT编译方法
注:不同版本的Spark命令有所变化,请先查看$SPARK_HOME/sbt/sbt文件。
解压源代码并复制到指定目录,然后进入该目录,运行:
(export http_proxy=http://proxy-server:port 需要添加代理,由于我没有添加代理,所以编译失败了@_@!以后有时间再试试)
3、maven编译(参考官网)
使用Maven构建Spark需要Maven 3.0.4或更新和Java 6 +。
安装好maven3.2.2,并设置环境变量MAVEN_HOME,将$MAVEN_HOME/bin加入PATH变量。
1)您需要配置Maven使用比平时更多的内存设置maven_opts。建议下列设置(Java 1.8以上不需要设置):
如果你没有运行,你可以看到下面的错误:
2)指定Hadoop版本并编译
由于HDFS对版本不是协议兼容的,如果你想从HDFS读,你需要在你的环境中建立针对特定HDFS版本的Spark。你可以通过“hadoop.version”来做到这。如果未设置,将默认建立针对Hadoop 1.0.4的Spark。请注意,某些建立配置文件是为特定的Hadoop版本要求:
对于Hadoop 2.X with YARN,编译:
# Apache Hadoop 2.2.X
如果是其他版本的YARN和HDFS,则按下面编译:
# Different versions of HDFS and YARN.
)
编译结果为:
在$SPARK_HOME/assembly/target/scala-2.10目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME/examples/target/scala-2.10目录下生成: spark-examples-1.0.1-hadoop2.2.0.jar
另外,这篇文章的编译讲得也很详细,也可以参考:http://mmicky.blog.163.com/blog/static/1502901542014312101657612/
以及文章 /article/5060014.html
Spark源码和编译后的源码、部署包我分享在: http://pan.baidu.com/s/1c0y7JKs 提取密码: ccvy
本文编译方法所支持的hadoop环境是Hadoop-2.2.0,YARN是2.2.0,JAVA版本为1.8.0_11,操作系统Ubuntu14.04
Spark1.0.0 源码下载地址: http://mirror.bit.edu.cn/apache/spark/spark-1.0.0/spark-1.0.0.tgz
Spark1.0.1 源码下载地址:http://apache.fayea.com/apache-mirror/spark/spark-1.0.1/spark-1.0.1.tgz
1、spark自带编译方法
注:不同版本的Spark编译命令有所不同,请先查看$SPARK_HOME/make-distribution.sh文件。
使用spark中自带的编译脚本make-distribution.sh (需要先安装Maven ,参见《Maven-3.2.2安装配置》)
cd spark-1.0.1 ./make-distribution.sh --hadoop 2.2.0 --with-yarn --tgz
脚本文件make-distribution.sh可以生成部署包,其参数有:
--tgz: Additionally creates spark-$VERSION-bin.tar.gz
--hadoop VERSION: Builds against specified version of Hadoop.
--with-yarn: Enables support for Hadoop YARN.
--with-hive: Enable support for reading Hive tables.
--name: A moniker for the release target. Defaults to the Hadoop verison.
如果一切顺利,会在$SPARK_HOME/assembly/target/scala-2.10目录下生成目标文件
(好像Java版本1.8在这里有版本问题?默认在1.6环境下,但我居然编译成功了,呵呵)
(注:之前加了--with-tachyon 我总是编译成功,但生成tgz部署包失败,不知道为什么。今天我在JDK1.7.0_51环境(应该与JDK版本无关)下,去掉了--with-tachyon ,编译成功,并且生成了spark-1.0.1-
bin-2.2.0.tgz部署包)
在$SPARK_HOME/assembly/target/scala-2.10目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME/examples/target/scala-2.10目录下生成: spark-examples-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME/dist/lib目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar 和 spark-examples-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME根目录下生成Spark部署包:spark-1.0.1-bin-2.2.0.tgz
编译结果:
2、SBT编译方法
注:不同版本的Spark命令有所变化,请先查看$SPARK_HOME/sbt/sbt文件。
解压源代码并复制到指定目录,然后进入该目录,运行:
tar -zxvf spark-1.0.0.tar.gz cd spark-1.0.1 SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true ./sbt/sbt assembly
(export http_proxy=http://proxy-server:port 需要添加代理,由于我没有添加代理,所以编译失败了@_@!以后有时间再试试)
3、maven编译(参考官网)
使用Maven构建Spark需要Maven 3.0.4或更新和Java 6 +。
安装好maven3.2.2,并设置环境变量MAVEN_HOME,将$MAVEN_HOME/bin加入PATH变量。
1)您需要配置Maven使用比平时更多的内存设置maven_opts。建议下列设置(Java 1.8以上不需要设置):
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]
2)指定Hadoop版本并编译
由于HDFS对版本不是协议兼容的,如果你想从HDFS读,你需要在你的环境中建立针对特定HDFS版本的Spark。你可以通过“hadoop.version”来做到这。如果未设置,将默认建立针对Hadoop 1.0.4的Spark。请注意,某些建立配置文件是为特定的Hadoop版本要求:
对于Hadoop 2.X with YARN,编译:
# Apache Hadoop 2.2.X
mvn -Pyarn -Phadoop-2.2 -Dhadoop.version=2.2.0 -DskipTests clean package
如果是其他版本的YARN和HDFS,则按下面编译:
# Different versions of HDFS and YARN.
mvn -Pyarn-alpha -Phadoop-2.3 -Dhadoop.version=2.3.0 -Dyarn.version=0.23.7 -DskipTests clean package
)
编译结果为:
在$SPARK_HOME/assembly/target/scala-2.10目录下生成: spark-assembly-1.0.1-hadoop2.2.0.jar
在$SPARK_HOME/examples/target/scala-2.10目录下生成: spark-examples-1.0.1-hadoop2.2.0.jar
另外,这篇文章的编译讲得也很详细,也可以参考:http://mmicky.blog.163.com/blog/static/1502901542014312101657612/
以及文章 /article/5060014.html
Spark源码和编译后的源码、部署包我分享在: http://pan.baidu.com/s/1c0y7JKs 提取密码: ccvy
相关文章推荐
- Spark-1.0.1 的make-distribution.sh编译、SBT编译、Maven编译 三种编译方法
- Spark集群环境搭建+Maven、SBT编译部署+IDEA开发(二)
- Spark集群环境搭建+Maven、SBT编译部署+IDEA开发(一)
- 命令行编译java程序的三种方法
- QT-E编译错误.obj/release-shared-emb-arm/qscriptcontext_p.o和sub-script-make_default-ordered解决方法
- Android编译错误处理make ......./noproguard.classes-with-local.dex] 已杀死的方法
- fedora14 编译arm Linux make menuconfig error处理方法
- 反编译APK文件的三种方法
- ASP.NET中的三种编译方法
- 反编译APK文件的三种方法
- php5.3.*编译出现make: *** [ext/gd/libgd/gd_compat.lo] Error 1 解决方法
- php5.3.*编译出现make: *** [ext/gd/libgd/gd_compat.lo] Error 1 解决方法
- Maven的使用方法:在服务器上进行自动编译时的发布(deploy)
- 反编译APK文件的三种方法
- make编译Qt原码时出现 /usr/bin/ld: cannot find -lXrender 问题的解决方法
- Ubuntu下Nox编译make不通过的解决方法和简要安装过程
- 使用ACE5.6过程中编译错误的三种解决方法
- libgc 加 .make 在 vc6 vs2008 中的编译方法
- Spark0.91使用sbt编译Unresolved依赖问题
- IntellJ iDEA中使用Maven 编译直接本地跑spark ,如何给算法传参数(仅作备忘记录)