1

我在 SnappyData 0.9 中创建了一个数据库模式,其中包含一些基于行的表,而没有连接配置单元元数据存储。稍后,我在 hive-site.xml 文件中添加 hive.metastore.uris 属性并让 SnappyData 连接到它。令我惊讶的是,领导服务抱怨“检测到目录不一致”并开始删除所有表。

17/07/12 13:52:36.830 CDT HiveMetaStore Client-0<tid=0x17> INFO metastore: Trying to connect to metastore with URI thrift://hmsserver:9083
17/07/12 13:52:36.960 CDT HiveMetaStore Client-0<tid=0x17> INFO metastore: Connected to metastore.
17/07/12 13:52:37.156 CDT serverConnector<tid=0x17> INFO snappystore: info: Catalog inconsistency detected: following tables in datadictionary are not in Hive metastore: schema = DAS tables = [ACS_ACCESS_RIGHT, SEC_PRIVILEGE_TYPE, SEC_USER, SEC_USER_PRIVILEGE, LOC_STORE, LOCATION]
17/07/12 13:52:37.156 CDT serverConnector<tid=0x17> INFO snappystore: info: FabricDatabase.dropTables  processing DAS.ACS_ACCESS_RIGHT
17/07/12 13:52:37.159 CDT serverConnector<tid=0x17> INFO snappystore: info: Dropping table DAS.ACS_ACCESS_RIGHT
... 


所以,我的问题是 - 我可以让 SnappyData 行基表和配置单元表在 SnappyData 中共存吗?

4

2 回答 2

1

在 SnappyData 中,您无法使用 hive-site.xml 中的 hive.metastore.uris 属性配置 Hive 元数据存储

SnappyData 在内部初始化 Hive mestastore 客户端,该客户端在 SnappyData 服务器本身上创建它所需的所有表。由于此类用户不需要配置自己的 hive-site.xml,并且如果将其配置为指向不同的 Hive Metastore URI,它将无法正常工作(尽管您似乎认为它正在工作)作为 Hive mestastore 的表应该在 SnappyData 服务器上。

于 2017-07-17T06:25:44.037 回答
0

我自己的问题的答案似乎是肯定的,但是在 SnappyData 连接到 hive 元存储之后,您必须在它中创建模式和表。

此外,您必须在 hive-site.xml 中为所有 SnappyData 服务定义以下属性。

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
于 2017-07-17T02:15:23.803 回答