本文檔相關軟件的版本:spark-1.0.2、hadoop2.4.0和hive-0.13.0
一、編譯打包
1、準備
將 hadoop gateway所使用的 hadoop 相關配置文件(*-site.xml)放到 spark 的代碼裏的 core/src/main/resources/下進行打包,否則可能會出現找不到rm以及 nn 等情況。
2、打發布包
spark的編譯方式有多種,這裏只講解用腳本使用maven進行編譯打包的方法,在用編譯打包之前需要給maven進程配置足夠內存:
export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m”
spark默認編譯包不支持hive,需要在編譯的時候需要通過--with-hive指定,在spark源代碼路徑下執行:
./make-distribution.sh --hadoop 2.4.0 --with-yarn --tgz —with-hive
運行完成之後會生成一個發佈包:spark-1.0.2-bin-2.4.0.tgz
二、部署
1、拷貝spark-1.0.2-bin-2.4.0.tgz包到部署節點並解壓
2、拷貝hive的配置hive-site.xml文件到conf/目錄下
3、拷貝mysql-connector-java-5.1.15-bin.jar包到lib/目錄下
4、上傳lib/spark-assembly-1.0.2-hadoop2.4 .0.jar文件到hdfs目錄hdfs://ns1//spark/jars下
5、配置conf/spark-env.sh,內容如下:
export SPARK_JAR=hdfs://ns1//spark/jars/spark-assembly-1.0.2-hadoop2.4 .0.jar
export HADOOP_CONF_DIR=/usr/local/hadoop-2.4.0/etc/hadoop
export YARN_CONF_DIR=/usr/local/hadoop-2.4.0/etc/hadoop
export SPARK_YARN_USER_ENV="CLASSPATH=/usr/local/hadoop-2.4.0/etc/hadoop/"
export SPARK_SUBMIT_LIBRARY_PATH=/usr/local/hadoop-2.4.0/lib/native/
export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr/local/spark-1.0.2/lib/mysql-connector-java-5.1.15-bin.jar
配置conf/spark-defaults.conf,內容如下:
spark.yarn.historyServer.address 10.39.5.23:18080
spark.eventLog.enabled true
spark.eventLog.dir hdfs://ns1/spark/logs
三、啓動spark的history server
執行:
./sbin/start-history-server.sh hdfs://ns1/spark/logs/
四、驗證
1、spark安裝目錄下執行:
./bin/spark-shell --master yarn --num-executors 4 --driver-memory 2g --executor-memory 2g --executor-cores 1
2、spark-shell啓動成功之後分別執行以下三行命令
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)
import hiveContext._
hql("select * from mds_user_info limit 1”).collect().foreach(println)
如果執行成功,說明hive on spark部署成功
======================================
也可以參考我同事的blog: