實現CDH支持Spark SQL功能

CDH內嵌spark版本不支持spark-sql,可能是因爲cloudera在推自己的impala;如果上線spark卻不能使用sql這種結構化語言,對於大部分分析人員其實是很不爽的!so,就手動實現支持spark-sql的功能吧


1.下載spark的包
http://www.apache.org/   -》    右上角download   -》 HTTP  http://apache.fayea.com/  -》 http://apache.fayea.com/spark/ -》http://apache.fayea.com/spark/spark-1.6.1/spark-1.6.1-bin-hadoop2.6.tgz

2.解壓spark包spark-1.6.0-bin-hadoop2.6

3.獲取spark包lib中的spark-assembly-1.6.0-hadoop2.6.0.jar,

4.在cdh集羣中找一個點安裝原生spark,可以放到cdh的安裝目錄/opt/cloudera/parcels/CDH/lib/中

5.將spark包中的conf中的配置文件替換成其他cdh spark節點中spark的配置(/etc/spark/conf/)

6.在cm管理界面-spark界面-配置中修改spark-defaults.conf(Spark Client Advanced Configuration Snippet (Safety Valve) for spark-conf/spark-defaults.conf),添加spark.yarn.jar屬性,值爲spark-assembly-1.6.0-hadoop2.6.0.jar在hdfs上的路徑(spark.yarn.jar=/spark_jars/spark-assembly-1.6.0-hadoop2.6.0.jar);在spark-env.sh中添加HADOOP_CONF_DIR=$HADOOP_CONF_DIR:/etc/hive/conf
export HADOOP_CONF_DIR。保存修改,部署客戶端配置,重啓spark集羣,拷貝配置到原生的spark配置中

7.啓動spark sql server:在原生spark節點k3執行---》sh /opt/cloudera/parcels/CDH/lib/spark/sbin/start-thriftserver.sh 

8.在任一安裝spark節點執行beeline -u jdbc:hive2://k3:10000/default 進入spark sql命令行模式。


問題:

後來當在cdh spark節點submit程序時,yarn-client模式會報錯

 Exception in thread "main" org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 0.0 failed 1 times, most recent failure: Lost task 2.0 in stage 0.0 (TID 2, localhost): java.lang.RuntimeException: Stream '/jars/spark-assembly-1.6.0-hadoop2.6.0.jar' was not found. 
意思是jar包衝突了,我將cdh中spark lib目錄下jar包全部替換成了原生spark的lib/中jar,再次運行程序就好了。

發佈了49 篇原創文章 · 獲贊 7 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章