实现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,再次运行程序就好了。

你可能感兴趣的:(spark)