hive on spark部署

本文檔相關軟件的版本: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:

http://dj1211.com/?p=221

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章