首页 > 代码库 > 运维系列:01、Spark编译与打包
运维系列:01、Spark编译与打包
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编译过程,所以不需要先编译再打包。
参考:
http://spark.apache.org/docs/latest/building-with-maven.html
http://blog.csdn.net/book_mmicky/article/details/25714445
运维系列:01、Spark编译与打包
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。