如何为SparkSQL添加hive中支持的而SparkSQL暂未支持的命令

 我来答
谦虚且泰然灬熊猫V
2015-12-27 · TA获得超过1741个赞
知道大有可为答主
回答量:3060
采纳率:0%
帮助的人:6684万
展开全部
 前面已经有篇文章介绍如何编译包含hive的spark-assembly.jar了,不清楚的可以翻看一下前面的文章。
  cloudera manager装好的spark,直接执行spark-shell进入命令行后,写入如下语句:
  val hiveContext = new org.apache.spark.sql.hive.HiveContext(sc)

  你会发现没法执行通过,因为cm装的原生的spark是不支持spark hql的,我们需要手动进行一些调整:
  第一步,将编译好的包含hive的JAR包上传到hdfs上配置的默认的spark的sharelib目录:/user/spark/share/lib

 
 第二步:在你要运行spark-shell脚本的节点上的/opt/cloudera/parcels/CDH-
5.3.0-1.cdh5.3.0.p0.30/lib/spark/lib/目录下面,下载这个jar到这个目录:hadoop fs -get
hdfs://n1:8020/user/spark/share/lib/spark-assembly-with-hive-maven.jar(具
体路径替换成你自己的)。然后这个目录下面原来会有个软链接spark-assembly.jar指向的是spark-assembly-1.2.0-
cdh5.3.0-hadoop2.5.0-cdh5.3.0.jar,我们把这个软链接删除掉重新创建一个同名的软链接:ln -s
spark-assembly-with-hive-maven.jar
spark-assembly.jar,指向我们刚下载下来的那个JAR包,这个JAR包会在启动spark-shell脚本时装载到driver
program的classpath中去的,sparkContext也是在driver中创建出来的,所以需要将我们编译的JAR包替换掉原来的
spark-assembly.jar包,这样在启动spark-shell的时候,包含hive的spark-assembly就被装载到
classpath中去了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式