运维系列:01、Spark编译与打包
2014-09-12 10:05
357 查看
1、SBT编译
vi project/SparkBuild.scala修改仓库:
"Maven Repository" at "http://172.16.219.120:8080/nexus/content/groups/public/"
SPARK_HADOOP_VERSION=2.4.0.2.1.2.0-402 SPARK_YARN=true sbt/sbt clean assembly
2、MAVEN编译
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
mvn -Pyarn -Dhadoop.version=2.4.0.2.1.2.0-402 -Dyarn.version=2.4.0.2.1.2.0-402 -DskipTests clean package
3、编译打包
pox.xml修改仓库:maven-repo --> <url>http://172.16.219.120:8080/nexus/content/groups/public/</url>
不带Hadoop依赖:hadoop-provided --> <activeByDefault>true</activeByDefault>
以上不用改,配置本地代理就行了……
编译完源代码后,虽然直接用编译后的目录再加以配置就可以运行spark,但是这时目录很庞大,又3G多吧,部署起来很不方便,所以需要生成部署包。
spark源码根目录下带有一个脚本文件make-distribution.sh可以生成部署包,其参数有:
--hadoop VERSION:打包时所用的Hadoop版本号,不加此参数时hadoop版本为1.0.4。
--with-yarn:是否支持Hadoop YARN,不加参数时为不支持yarn。
--with-hive:是否在Spark SQL 中支持hive,不加此参数时为不支持hive。
--skip-java-test:是否在编译的过程中略过java测试,不加此参数时为略过。
--with-tachyon:是否支持内存文件系统Tachyon,不加此参数时不支持tachyon。
--tgz:在根目录下生成 spark-$VERSION-bin.tgz,不加此参数时不生成tgz文件,只生成/dist目录。
--name NAME:和--tgz结合可以生成spark-$VERSION-bin-$NAME.tgz的部署包,不加此参数时NAME为hadoop的版本号。
如果要生成spark支持yarn、hadoop2.4.0.2.1.2.0-402的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --hadoop 2.4.0.2.1.2.0-402--with-yarn --tgz --skip-java-test
如果要生成spark支持yarn、hive的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --hadoop 2.4.0.2.1.2.0-402 --with-yarn --with-hive --tgz
如果要生成spark支持yarn、hadoop2.4.0.2.1.2.0-402、techyon的部署包,只需要将源代码复制到指定目录,进入该目录后运行:
./make-distribution.sh --hadoop 2.4.0.2.1.2.0-402 --with-yarn --with-tachyon --tgz
生成在部署包位于根目录下,文件名类似于spark-1.0.0-bin-2.4.0.2.1.2.0-402.tgz。
值得注意的是:make-distribution.sh已经带有Maven编译过程,所以不需要先编译再打包。
最新的1.1.0版本发生了变化
-Dyarn.version:类似于原来的--hadoop-Pyarn:类似于原来的--with-yarn
-Phive:类似于原来的--with-hive
示例:
./make-distribution.sh --tgz --skip-java-test -Dyarn.version=2.4.0.2.1.4.0-632 -Dhadoop.version=2.4.0.2.1.4.0-632 -Pyarn
参考:
http://spark.apache.org/docs/latest/building-with-maven.html
/article/1373740.html
相关文章推荐
- Android 系列之Android 命令行手动编译打包详解(转)
- Android系列之Android 命令行手动编译打包详解
- 游走Android系列之APK文件的反编译、修改和重新编译打包
- 运维系列:03、Spark 单机版
- 运维系列:02、Spark的部署方式
- 01-asp.net 系列关于vs 2005 主题的示例。 我打包了文件。 做好主题后,有3种方法。
- 运维系列:07、spark-submit
- Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
- Android系列之Android 命令行手动编译打包详解
- 运维系列:06、Spark调优
- Android系列之Android 命令行手动编译打包详解
- 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2.0.1版本跨平台整合NDK+Xcode,Xcode编写&编译代码,Android导入打包运行即可!
- [转]Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
- Android系列之Android 命令行手动编译打包详解
- 游走Android系列之APK文件的反编译、修改和重新编译打包
- Android系列之Android 命令行手动编译打包详解
- Android系列之Android 命令行手动编译打包详解
- ANDROID NDK实践开发系列--(01) 使用ndk编译c可执行程序
- Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
- 开发系列:01、使用Java和Maven开发Spark应用