Spark编译
一、所需环境
1、CentOS 6.5
2、jdk1.8.0_4.5
3、maven 3.3.9
4、scala 2.11.8
5、git:直接输入命令:sudo yum install git
二、下载源码,安装依赖
下载页面官网:http://spark.apache.org
在download页面选择2.2.0源码下载,右键复制链接,在linux中下载:
[hadoop@hadoop001 source]$ wget https://archive.apache.org/dist/spark/spark-2.2.0/spark-2.2.0.tgz
官方文档要求,编译spark之前环境要求:
Maven版本:Maven-3.3.9 or newer 安装链接
Java版本:Java 8+ 安装链接
Scala:2.10+ 安装链接
三、编译源码
1、解压
[hadoop@hadoop001 source]$ tar -xzvf spark-2.2.0.tgz
2、设置maven使用内存
添加至环境变量,一劳永逸
export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=512m"
3、spark自带的编译方式
cd spark 2.2.0
./build/mvn -DskipTests clean package 不指定版本编译出来全根据pom.xml
./build/mvn -Pyarn -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
-Phive -Phive-thriftserver 带hive
-Pdocker-integration-tests -pl :spark-docker-integration-tests_2.11 docker
由于前面Hadoop版本是cdh
mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.6 -Dhadoop.version=2.6.0-cdh5.7.0 -DskipTests clean package
4、make-distribution编译
由于上面的编译方式不会生成.tgz文件, 使用make-distribution编译,会产成一个tgz包,拷贝到生产环境安装。spark根目录下的make-distribution.sh已经封装好了方法一中maven的命令,以及MAVEN_OPTS的配置,所以编译时只需要把hadoop和yarn相关参数传进去即可。本次我们选择使用这种方式来编译spark
修改/dev/make-distribution.sh,将maven检查的步骤全部注释掉,并且增加变量配置各软件的版本号(修改以上配置是为了让spark编译过程跳过一些版本检查,加快编译速度)
[hadoop@hadoop001 spark-2.2.0]$ vi dev/make-distribution.sh
注释掉vesion一段,添加如下内容
VERSION=2.2.0
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.6.0-cdh5.7.0
SPARK_HIVE=1
然后在修改pom.xml文件添加clouderad repos(默认使用apache官方的仓库)
<repository>
<id>cloudera</id>
<name>Cloudera Repository</name>
<url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
</repository>
然后编译
[hadoop@hadoop001 spark-2.2.0]$ ./dev/make-distribution.sh \
--name 2.6.0-cdh5.7.0 \
--tgz \
-Dhadoop.version=2.6.0-cdh5.7.0 \
-Dhadoop2.6 \
-Phive -Phive-thriftserver \
-Pyarn
四、spark安装
1.解压并安装到~/app
[hadoop@hadoop001 software]$ tar -zxvf spark-2.2.0-bin-2.6.0-cdh5.7.0.tgz -C ~/app/
2.配置环境变量
vi ~/.bash_profile
export SPARK_HOME=/home/hadoop/app/spark-2.2.0-bin-2.6.0-cdh5.7.0
export PATH=$SPARK_HOME/bin:$PATH
source ~/.bash_profile
3.目录说明
bin:存放客户端相关脚本
conf:存放配置文件
data:存放测试数据
examples:存放spark自带测试用例 *****
jars:存放spark响应的jar包 最佳实践
sbin:存放服务端相关的脚本:启停集群
yarn:存放yarn相关的jar包
4.启动
[hadoop@hadoop001 ~]$ spark-shell
web页面:http://localhost:4040/jobs/