运维系列: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

时间: 2024-08-02 10:53:33

运维系列:01、Spark编译与打包的相关文章

自动化运维系列之Ansible的简介与安装【持续更新···】

自动化运维系列之Ansible的简介与安装 自动化运维工具简介 由于互联网的快速发展导致产品更新换代的速度逐渐加快,这就导致运维人员的日常工作会大大增加,如果还是按照传统方式进行维护工作会使工作效率低下.此时,就需要部署自动化运维了,自动化运维会尽可能安全.高效的完成运维人员的日常工作. 自动化运维工具划分为两类:一类是需要使用代理工具的,也就是基于专用的Agent程序来完成管理功能,如:Puppet.Func.Zabbix等:另一类是不需要配置代理工具的,可以直接基于SSH服务来完成管理功能,

自动化运维系列之Ansible命令应用基础(模块的应用)【持续更新中···】

自动化运维系列之Ansible命令应用基础(模块的应用) 模块简介 Ansible可以使用命令行方式进行自动化管理,基本语法如下: ansible <host-pattern> [-m module_name] [-a args] <host-pattern> 对哪些主机生效 [-m module_name] 需要使用的模块 [-a args] 模块特有的参数,这里在使用时需加单引号哦! Ansible的命令行管理工具都是由一系列模块.参数所支持的,可以在命令行后加上-h或--he

自动化运维系列之Ansible的YAML、基础元素介绍

自动化运维系列之Ansible的YAML.基础元素介绍 YAML简介 YAML是一种用来表达资料序列的格式.YAML是YAML Ain't Markup Lanaguage的缩写,即YAML不是XML. 特点 1.具有很好的可读性,易于实现: 2.表达能力强,扩展性好: 3.和脚本语言的交互性好: 4.有一个一致的信息模型: 5.可以基于流来处理. YAML语法 YAML的语法和其他语言类似,也可以表达散列表.标量等数据结构. YAML结构通过空格来展示:序列里的项用"-"来代表:Ma

自动化运维系列之SaltStack批量部署Apache服务

自动化运维系列之SaltStack批量部署Apache服务 saltstack原理 SalStack由master和minion构成,master是服务端,表示一台服务器:minion是客户端,表示多台服务器.在Master上发送命令给符合条件的minion,Minion就会执行相应的命令.Master和Minion之间是通过ZeroMQ(消息队列)进行通信的. SaltStack的Master端的监听端口是4505和4506,4505端口是Master和Minion认证通信端口:4506端口是

运维自动化之java编译自动化

[需求描述]     为了让代码开发之后,提升测试.部署上线的效率,需要将代码编译.部署过程自动化.     这里先介绍怎样使用javac自动化编译java代码.     因为项目目前暂未使用ant.maven等管理构建,所以需要使用比较原始的javac来实现,很伤有木有. [背景说明]     代码目录结构     1.web类型的代码:达成war包(就一目录),使用tomcat来部署 web类型的工程目录结构介绍# ls /home/souces/boss-websrc  WebConten

Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装

[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.编译Spark Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包.SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网下进行,通过比较发现SBT编译速度较慢(原因有可能是1.时间不一样,SBT是白天编译,Maven是深夜进行的,获取依赖包速度不同 2.maven下载大文件是多线程进行,而SBT是

Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装

[注]该系列文章以及使用到安装包/測试数据 能够在<[倾情大奉送–Spark入门实战系列] (http://blog.csdn.net/yirenboy/article/details/47291765)>获取 1 编译Hadooop 1.1 搭建好开发环境 1.1.1 安装并设置maven 1.下载maven安装包.建议安装3.0以上版本号,本次安装选择的是maven3.0.5的二进制包,下载地址例如以下 http://mirror.bit.edu.cn/apache/maven/maven

运维工程师必备技能——编译安装

相信广大从事运维工作的小伙伴对编译安装都不陌生,这里我简要演示一下编译安装的基本步奏. 在生产环境中,我们往往需要从网上或其他源码包提供点下载所需要的源码包,而这些源码包我们是无法直接安装的,这时我们就需要先把源代码编译成二进制程序包,然后再执行安装. 源码编译安装程序,首先需要依赖环境的支持,既编译开发工具.以及各个被依赖到的程序包的开发组件,另外还需要通过定制的编译参数来进行编译安装. 常见的编译开发工具(包组)有: Development tools Server Platform Dev

Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建

[注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用一般使用64位操作系统,内容分为三部分:基础环境搭建.Hadoop编译安装和Spark编译安装,该环境作为后续实验基础: 3.文章演示了Hadoop.Spark的编译过程,同时附属资源提供了编译好的安装包,觉得编译费时间可以直接使用这些编译好的安装包进行部署. 1.运行环境说明 1.1 硬软件环境 l  主机