【问题标题】:Apache Drill - Hive Integration: Drill Not listing TablesApache Drill - Hive 集成:Drill 未列出表格
【发布时间】:2018-10-24 16:47:49
【问题描述】:

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

Show Databases;

但是当我尝试使用以下方式列出表格时:

Show Tables;

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

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

  1. 我通过在所有节点上使用相同的集群 id 更新 drill-override.conf 以及带有端口的 ZK IP,然后在每个节点上调用 Drillbit.sh,创建了一个 Drill 分布式集群。
  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 集成所做的工作。我在这里错过了什么吗?

关于版本- 钻头:1.14,Hive:1.2(Hive Metastore:MySQL) 我们在同一节点上也有 Hive Server2,这会导致任何问题吗? 我只想将 Drill 与 Hive 1.2 集成,我做得对吗? 任何指针都会有所帮助,已经花了将近 2 天的时间才把它弄好。 感谢您的宝贵时间。

【问题讨论】:

  • 旁注:ConnectionURL 无用(甚至有害),因为您指定了适当的 Metastore 服务 URI——无需访问底层 MySQL 数据库
  • "当我尝试列出表时" > 在哪个数据库中?如果您没有使用use 命令设置隐式数据库,那么您可能会默认使用某些特定于钻头的虚拟区域。
  • Drill 文档对show tablesuse drill.apache.org/docs/show-tables 非常明确
  • @SamsonScharfrichter 如上所述,我可以使用 USE 命令(比如 USE DUMMY_DB)在 Drill 中访问 hive 数据库,该命令也可以通过 Hive Shell 访问。之后,In Drill SHOW TABLES 不再列出表格。
  • @SamsonScharfrichter 好的,我将在没有 ConnectionURL 的情况下配置 Hive Storage Plugin。如果它有效,我会更新你

标签: hive apache-drill


【解决方案1】:

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

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

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

【讨论】:

  • 谢谢维塔利。我将尝试使用您建议的配置将 Drill 与 Hive 2.3 连接起来。我会尽快更新你。
  • 嗨 Vitalii Diravka,你是对的。我在 Cloudera Sandbox 上尝试了上述配置,Drill 能够列出和查询 hive 表。我们的集群存在一些未知问题,将要求管理员进行调查。具体来说,我刚刚更新了 Hive 存储插件中的“metastore uri”,其他属性保持不变并且它工作正常。谢谢:)
  • 嗨 Vitalli,我删除了除 hive.metastore.uris 之外的所有 configProps。即使将架构选择为 hive show tables 命令也不返回任何内容
  • 您可以检查日志文件并找出连接到 Metastore 的问题
猜你喜欢
  • 2020-01-29
  • 1970-01-01
  • 2016-05-30
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-05
相关资源
最近更新 更多