Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装
Posted ErBing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装相关的知识,希望对你有一定的参考价值。
【注】该系列文章以及使用到安装包/测试数据 可以在《倾情大奉送--Spark入门实战系列》获取
1、编译Spark
Spark可以通过SBT和Maven两种方式进行编译,再通过make-distribution.sh脚本生成部署包。SBT编译需要安装git工具,而Maven安装则需要maven工具,两种方式均需要在联网下进行,通过比较发现SBT编译速度较慢(原因有可能是1、时间不一样,SBT是白天编译,Maven是深夜进行的,获取依赖包速度不同 2、maven下载大文件是多线程进行,而SBT是单进程),Maven编译成功前后花了3、4个小时。
1.1 编译Spark(SBT)
1.1.1 安装git并编译安装
1. 从如下地址下载git安装包
http://www.onlinedown.net/softdown/169333_2.htm
https://www.kernel.org/pub/software/scm/git/
如果linux是CentOS操作系统可以通过:yum install git直接进行安装
由于从https获取内容,需要安装curl-devel,可以从如下地址获取
http://rpmfind.net/linux/rpm2html/search.php?query=curl-devel
如果linux是CentOS操作系统可以通过:yum install curl-devel直接进行安装
2. 上传git并解压缩
把git-1.7.6.tar.gz安装包上传到/home/hadoop/upload目录中,解压缩然后放到/app目录下
$cd /home/hadoop/upload/
$tar -xzf git-1.7.6.tar.gz
$mv git-1.7.6 /app
$ll /app
3. 编译安装git
以root用户进行在git所在路径编译安装git
#yum install curl-devel
#cd /app/git-1.7.6
#./configure
#make
#make install
4. 把git加入到PATH路径中
打开/etc/profile把git所在路径加入到PATH参数中
export GIT_HOME=/app/git-1.7.6
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$GIT_HOME/bin
重新登录或者使用source /etc/profile使参数生效,然后使用git命令查看配置是否正确
1.1.2 下载Spark源代码并上传
1. 可以从如下地址下载到spark源代码:
http://spark.apache.org/downloads.html
http://d3kbcqa49mib13.cloudfront.net/spark-1.1.0.tgz
git clone https://github.com/apache/spark.git
把下载好的spark-1.1.0.tgz源代码包使用1.1.3.1介绍的工具上传到/home/hadoop/upload 目录下
2. 在主节点上解压缩
$cd /home/hadoop/upload/
$tar -xzf spark-1.1.0.tgz
3. 把spark-1.1.0改名并移动到/app/complied目录下
$mv spark-1.1.0 /app/complied/spark-1.1.0-sbt
$ls /app/complied
1.1.3 编译代码
编译spark源代码的时候,需要从网上下载依赖包,所以整个编译过程机器必须保证在联网状态。编译执行如下脚本:
$cd /app/complied/spark-1.1.0-sbt
$sbt/sbt assembly -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive
整个编译过程编译了约十几个任务,重新编译N次,需要几个甚至十几个小时才能编译完成(主要看下载依赖包的速度)。
1.2 编译Spark(Maven)
1.2.1 安装Maven并配置参数
在编译前最好安装3.0以上版本的Maven,在/etc/profile配置文件中加入如下设置:
export MAVEN_HOME=/app/apache-maven-3.0.5
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$GIT_HOME/bin
1.2.2 下载Spark源代码并上传
1. 可以从如下地址下载到spark源代码:
http://spark.apache.org/downloads.html
http://d3kbcqa49mib13.cloudfront.net/spark-1.1.0.tgz
git clone https://github.com/apache/spark.git
把下载好的spark-1.1.0.tgz源代码包使用1.1.3.1介绍的工具上传到/home/hadoop/upload 目录下
2. 在主节点上解压缩
$cd /home/hadoop/upload/
$tar -xzf spark-1.1.0.tgz
3. 把spark-1.1.0改名并移动到/app/complied目录下
$mv spark-1.1.0 /app/complied/spark-1.1.0-mvn
$ls /app/complied
1.2.3 编译代码
编译spark源代码的时候,需要从网上下载依赖包,所以整个编译过程机器必须保证在联网状态。编译执行如下脚本:
$cd /app/complied/spark-1.1.0-mvn
$export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
$mvn -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive -DskipTests clean package
整个编译过程编译了约24个任务,整个过程耗时1小时45分钟。
1.3 生成Spark部署包
在Spark源码根目录下有一个生成部署包的脚本make-distribution.sh,可以通过执行如下命令进行打包 ./make-distribution.sh [--name] [--tgz] [--with-tachyon] <maven build options>
l --name NAME和--tgz 结合可以生成spark-$VERSION-bin-$NAME.tgz 的部署包,不加此参数时NAME 为hadoop 的版本号
l --tgz在根目录下生成 spark-$VERSION-bin.tgz ,不加此参数时不生成tgz 文件,只生成/dist 目录
l --with-tachyon 是否支持内存文件系统Tachyon ,不加此参数时不支持tachyon
例子:
1. 生成支持yarn 、hadoop2.2.0 、hive 的部署包:
./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Phive
2. 生成支持yarn 、hadoop2.2.0 、hive 、ganglia 的部署包:
./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -P hive
1.3.1 生成部署包
使用如下命令生成Spark部署包,由于该脚本默认在JDK1.6进行,在开始时会进行询问是否继续,只要选择Y即可
$cd /app/complied/spark-1.1.0-mvn/
$./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -P hive
生成Spark部署包编译了约24个任务,用时大概1小时38分钟。
1.3.2 查看生成结果
生成在部署包位于根目录下,文件名类似于spark-1.1.0-bin-2.2.0.tgz。
2、安装Spark
2.1 上传并解压Spark安装包
1.我们使用上一步骤编译好的spark-1.1.0-bin-2.2.0.tgz文件作为安装包(也可以从网上下载native文件夹或者打包好的64位hadoop安装包),使用"Spark编译与部署(上)"中1. 3.1介绍的工具上传到/home/hadoop/upload 目录下
2. 在主节点上解压缩
$cd /home/hadoop/upload/
$tar -xzf spark-1.1.0-bin-2.2.0.tgz
Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建
Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装
Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装