Spark 1.3.1支持Hive Sql。当我输入show tables
时,它返回
A B C D
- 4张桌子。我有一个问题,Spark在哪里存储我的4个表?是hive.metastore
位置吗?我已删除hive.metastore
位置,但show tables
仍显示A B C D
答案 0 :(得分:5)
我在documentation中看到了这一点:"没有现有Hive部署的用户仍然可以创建HiveContext。如果未由hive-site.xml配置,则上下文会自动在当前目录中创建metastore_db和warehouse。"
因此,如果您没有任何自定义配置,它应该在仓库中的仓库中。 您可以这样更改:
val sparkConf = new SparkConf()
val sparkContext = new SparkContext(sparkConf)
val hiveContext = new org.apache.spark.sql.hive.HiveContext(sparkContext)
hiveContext.setConf("hive.metastore.warehouse.dir", $YOUR_LOCATION)
我也在doc中看到了这一点:"在使用Hive时,必须构建一个继承自SQLContext的HiveContext,并添加对在MetaStore中查找表的支持"。
所以我真的不明白在删除你的Metastore后你仍然可以看到你的桌子,也许它就在内存的某个地方。
编辑:
我对此的理解: