Apache Drill - Hive 集成:Drill 未列出表

Apache Drill - Hive Integration: Drill Not listing Tables

我一直在尝试使用 Hive 存储插件配置将 Apache Drill 与 Hive 集成。我使用所需的所有必要属性配置了存储插件。在 Drill Shell 上,我可以使用以下方式查看 Hive 数据库:

Show Databases;

但是当我尝试列出表格时使用:

Show Tables;

我没有得到任何结果(没有表格列表)。

以下是我从 Apache Drill 文档和其他来源遵循的步骤:

  1. 我通过更新 drill-override.conf 创建了一个 Drill 分布式集群,在所有节点上使用相同的集群 ID 以及带端口的 ZK IP,然后调用 drillbit.sh 在每个节点上。
  2. 使用 drill-conf 开始 Drill shell,确保 Hive 元存储服务也处于活动状态。

以下是在 Hive Storage Plugin for Drill 中进行的配置(来自其 Web-UI):

{
  "type": "hive",
  "configProps": {
    "hive.metastore.uris": "thrift://node02.cluster.com:9083",
    "javax.jdo.option.ConnectionURL": "jdbc:mysql://node02.cluster.com/hive",
    "hive.metastore.warehouse.dir": "/apps/hive/warehouse",
    "fs.default.name": "hdfs://node01.cluster.com:8020",
    "hive.metastore.sasl.enabled": "false"
  },
  "enabled": true
}

所有属性设置参考hive-site.xml

所以,这就是所有其他人为将 Drill 与 Hive 集成所做的工作。我在这里错过了什么吗?

关于版本- Drill:1.14,Hive:1.2(Hive Metastore:MySQL) 我们在相同的节点上也有 Hive Server2,这会导致任何问题吗? 我只想将 Drill 与 Hive 1.2 集成,我做对了吗? 任何指示都会有所帮助,花了将近 2 天的时间才弄好。 谢谢你的时间。

从 Drill 1.13 版本开始,Drill 利用 Hive 客户端 2.3.2 版本。 推荐使用Hive 2.3版本,避免不可预知的问题。

关于您的设置,请删除除 hive.metastore.uris 之外的所有 configProps。 其他配置可以是默认的(在 HiveConf.java 中)或可以在您的 hive-site.xml 中指定。

此外,如果在使用 Show Tables; 后甚至在执行 use hive 后结果为空,请检查 Drill 的日志文件中的错误。如果存在错误,您可以创建 Jira 票证以改进 Drill 的输出以反映该问题。