desehawk 发表于 2015-3-7 17:20:28

spark问题记录

在本机搭建的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 = Array()

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表,也可以通过设置更改。



页: [1]
查看完整版本: spark问题记录