Spark编译不是很复杂,使用maven就可以编译,但对maven的内存要求较高。
1、export MAVEN_OPTS=”-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m”
2、mvn -Pyarn -Phadoop-2.4 -Dhadoop.version=2.4.0 -DskipTests clean package
因为我是要跑在yarn上,其中要指定hadoop版本。
除了第一次需要下载大量jar包,其它编译大概需要20分钟左右,编译好后在$SPARK_HOME/assembly/target/scala-2.10/ 下面有个jar包,大概100多兆,这是我们部署用的。
Spark部署和配置也不难,从官网下载发布包(非刚才的源码包)即可,需要以下几步就可以部署使用。
1、$SPARK_HOME/lib 下替换spark-assmbly的jar包,替换为刚才编译出来的jar包
2、在$SPARK_HOME/conf 配置spark-env.sh
export SPARK_YARN_JAR==hdfs://ns1/spark/jar/spark-assembly-1.2.1-hadoop2.4.0.jar #上传刚编译的jar包到dfs上,让所有worked都能get到
export HADOOP_CONF_DIR=/usr/local/hadoop-2.4.0/etc/hadoop #Hadoop配置路径
export YARN_CONF_DIR=$HADOOP_CONF_DIR #Yarn配置路径
export SPARK_DAEMON_JAVA_OPTS=”-Djava.library.path=/usr/local/hadoop-2.4.0/lib/native/ -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data0/hadoop/gclog/heap.dump.spark”
export SPARK_SUBMIT_LIBRARY_PATH=/usr/local/hadoop-2.4.0/lib/native/ #LD_LIBRARY使用,调用native库用,如果使用lzo等配置好
3、在$SPARK_HOME/conf下配置spark-default.sh
spark.yarn.historyServer.address *.*.*.*:18080 #yarn historyserver地址
spark.eventLog.enabled true
spark.eventLog.dir hdfs://ns1/spark/logs
至此,Spark配置完成,如果在YARN上跑一下测试可以用$SPARK_HOME/bin/spark-shell —master yarn-client