编译的是 CDH5.3.0版本的spark,跟我们现在的hadoop(HADOOP-2.5.0-CDH5.3.0)集群匹配 ,下载地址:http://archive.cloudera.com/cdh5/cdh/5/
1.准备MAVEN,这是必须的,当然机器要能联网,以便MAVEN可以在线下载依赖的jar包。装maven就是下载和配置MAVEN_HOME,PATH,简单。
2.查看SPARK home目录的make-distribution.sh,个文件是cdh用来帮你编译和打发布包的脚本,脚本并不复杂,流程是脚本使用说明函数,识别用户传递的参数,调用maven编译打包,拷贝编译后的文件并打包(是否打包tgz是可选的,命令行加--tgz就行)。从脚本内容可以看出需要传递两种类型的参数:通用选项(--skip-java-test,--with-tachyon,--tgz,--name,--help)和maven参数。maven编译参数可以参考spark官网编译spark教程的说明文档:http://spark.apache.org/docs/1.2.1/building-spark.html,主要是指定对应的hadoop版本,以及是否包含yarn,hive等功能。
3.执行make-distribution.sh脚本。对于我的编译,命令如下:
./make-distribution.sh --tgz --skip-java-test -Pyarn -Phadoop-2.4 -Dhadoop.version=2.5.0-cdh5.3.0 -Phive -Phive-0.13.1-cdh5.3.0 -Phive-thriftserver -DskipTests
如果执行时指定了--tgz,则会在spark的home目录生成tgz格式的发布包,这个包就是最终需要的spark软件;如果未指定,则在spark home下的dist子目录里包含了未打包的spark软件,自己打包拷贝就行了。
4.拷贝生成的发布包,测试运行。只需要解压步骤三生成的tgz包就行了。应该spark on yarn是趋势,因此配在spark配置文件中配置下yarn或hadoop的配置文件地址。具体来说就是在 $YARN_HOME/conf/spark-env.sh
文件中添加:
HADOOP_CONF_DIR=/home/hadoop/cdh5/hadoop250/etc/hadoop/
YARN_CONF_DIR=/home/hadoop/cdh5/hadoop250/etc/hadoop/
HADOOP_HOME=/home/hadoop/cdh5/hadoop250/
这就是最简单的配置了,当然还有log4j和spark.conf以及metrics配置需要在正式用的时候配置优化。
接下来测试例子:
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --num-executors 6 --driver-memory 1g --executor-memory 2g --executor-cores 1 lib/spark-examples*.jar 5
执行没问题就可以正式优化使用了。