为了账号安全,请及时绑定邮箱和手机立即绑定

spark shell的交互式编程环境是怎么实现的

spark shell的交互式编程环境是怎么实现的

噜噜哒 2018-11-11 08:04:41
spark shell的交互式编程环境是怎么实现的
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

 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中去了。
  第三步:在/opt/cloudera/parcels/CDH/lib/spark/conf/目录下面创建一个hive-site.xml。/opt/cloudera/parcels/CDH/lib/spark/conf目录是默认的spark的配置目录,当然你可以修改默认配置目录的位置。

查看完整回答
反对 回复 2018-11-14
  • 1 回答
  • 0 关注
  • 1191 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信