Hive Metastore位置

时间:2015-06-23 08:42:38

标签: apache-spark hive

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

1 个答案:

答案 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后你仍然可以看到你的桌子,也许它就在内存的某个地方。

编辑:

我对此的理解:

  • metastore:表格的标题
  • 仓库:表格