Snappydata 和外部 Hive 兼容性

Snappydata and external Hive compatibility

我正在尝试使用 Snappydata 1.0.1 从 Hadoop (HDP 2.6.3) 读取和处理数据。

当指向 Hive metastore(通过 Snappydata 配置中的 hive-site.xml)时,Snappydata 分发版中的 Spark 可以读取数据库列表,但无法在 Snappydata 中创建 table。它告诉 'Table not found'。此外,Snappydata 集群 UI 显示 table,但 Snappydata 无法进一步使用它 - INSERT、SELECT、带有此 table 的 DROP 命令会抛出 table not found 错误, 随后 CREATE TABLE 告诉 'Table already exists'.

在不指定 Hive 元存储的情况下它运行良好。

配置单元-site.xml中的配置:

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://srv1.company.org:9083</value>
</property>

此外,我们正在使用智能连接器模式。

这似乎很奇怪 - 指向 Hive metastore 会破坏 Snappydata 代码,这与外部 Hive 完全无关(我们还没有从 Hadoop 读取或写入)。

假设 Snappydata 与我们的 Hive metastore 版本不兼容,这种不兼容会导致奇怪的行为。有人可以澄清这个问题吗?

似乎要从 Hadoop(Hive、HDFS)读取数据,我们必须在 Snappydata 中创建完全相同的外部 table。即在 Hadoop 中有 table A,我们必须在 Snappydata 中创建具有相同定义和 EXTERNAL 关键字的 table 才能从 Hadoop table A 中读取数据。这可以通过自身元数据存储的存在来解释在 Snappydata 中。

但是,文档中并不清楚。非常遗憾的是,这个问题已经快两周没有人回答了。