我在SnappyData 0.9中创建了一个包含几个行基表的数据库模式,但没有连接hive元数据存储。稍后,我在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行基表和hive表吗?
答案 0 :(得分:1)
在SnappyData中,您无法使用hive-site.xml中的hive.metastore.uris属性配置Hive元数据存储
SnappyData在内部初始化Hive mestastore客户端,该客户端在SnappyData服务器本身上创建它所需的所有表。因为这样的用户不需要配置他们自己的hive-site.xml,并且如果它被配置为指向不同的Hive Metastore URI,它将无法正常工作(尽管看起来你会得到它正在工作的印象)作为Hive mestastore& #39; s表应该在SnappyData服务器上。
答案 1 :(得分:0)
我自己的问题的答案似乎是肯定的,但是你必须在连接到hive Metastore之后在SnappyData中创建模式和表。
此外,您还必须在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>