分享

spark问题记录

desehawk 2015-3-7 17:20:28 发表于 总结型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 0 18631
在本机搭建的hadoop平台,spark sql和hive存在无法互相访问的问题,流程如下:
1. spark sql创建表的过程如下:
./bin/spark-shell --master yarn
.......
scala> sqlContext.sql("CREATE TABLE IF NOT EXISTS sparksql (key INT, value STRING)")
2. hive采用通常的sql语句创建表
hive> CREATE TABLE IF NOT EXISTS hivetest (key INT, value STRING)

3. 在hadoop的管理页面或者使用“/usr/local/hadoop-2.5.2/bin/hadoop fs -ls /user/hive/warehouse”,均可以看到两种方法创建的表;
但是在运行hive只能检索到hive使用sql语句创建的表:
hive> show tables;
hivetest

scala程序也只能看到scala程序创建的表:
scala> hql("show tables").collect()
.......
res2: Array[org.apache.spark.sql.Row] = Array([sparksql])

spark采用的是1.2.0,官方文档说支持hive0.13.1,hive使用的是0.13.1

qlcontext使用hivecontext创建的:
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)


解决办法:
找到原因了,hive会在运行的子目录下寻找metastore_db的目录,该目录存储了所有和hive表相关的信息,hive在目录下存储的是哪个metastore_db,hive或者spark看到的就是哪个hive表,也可以通过设置更改。



没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条