Spark编译准备
分布式计算框架
1.首先安装好maven(3.3.9)和scala(2.11.8)
2.安装 Git(建议安装一下,编译的时候可能用到,脚本里有提:
sudo yum install git
本文档spark版本:2.2.0
建议不要用最后一个是0的,因为没有修复过bug,最后一位代表修改过bug的版本。
官网building spark地址:http://spark.apache.org/docs/latest/building-spark.html
老版本地址(比如) : http://spark.apache.org/docs/2.2.2/building-spark.html
spark源码编译(mvn命令直接编译)
先修改编译时的内存(在spark解压的目录(未编译的目录)下执行):
export MAVEN_OPTS="-Xmx2g --XX:ReserveDCodeCacheSize=512m"
./build/mvn -DskipTests clean package (跳过测试,打包)(可以找maven文档看看)
./build/mvn -Pyarn -Phive -Phive-thriftserver -Phadoop-2.7 -Dhadoop.version=2.7.3 -DskipTests clean package
报zinc错误的话,jps查看进程,把一个nicgun什么东西kill掉。
Spark编译(使用自带的脚本编译)
可以生成可运行的包,可以查看make-distribution.sh来
./dev/make-distribution.sh
–name 2.7.3 --tgz
-Phadoop-2.7 -Dhadoop.version=2.7.3
-Phive -Phive-thriftserver -Pyarn
执行会很慢,因为要检测版本,所以可以修改make-distribution.sh把检测版本的注释掉,然后加上:
VERSION=2.2.0
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.7.3
SPARK_HIVE=1
然后再次编译。
最后在spark根目录下出现了一个tgz的包,名字是spark-2.2.0-bin-2.7.3.tgz
名字来源在make-distribution.sh里面(最后面)
解压spark-2.2.0-bin-2.7.3.tgz后,目录结构:
bin 存放客户端相关的脚本
conf 存放配置文件
data 存放测试数据
examples Spark自带的测试用例 *****这些代码,多看看,多学学
jars 存放Spark相应的jar包
sbin 存放服务相关的脚本:启停集群。。。
yarn 存放yarn相关的jar