hadoop - Apache Drill - 慢速查询

标签 hadoop hive hdfs apache-drill

我在 Drill 中设置了以下存储插件:

{
  "type": "hive",
  "enabled": true,
  "configProps": {
    "hive.metastore.uris": "thrift://hivemetastore.hostname.com:9083",
    "hive.metastore.sasl.enabled": "false"
  }
}

然而,一个简单的

SELECT * FROM hive.table LIMIT 5;

...

5 rows selected (35.383 seconds)
0: jdbc:drill:> 

需要超过 30 秒才能响应。我错过了什么/我应该从哪里开始进行故障排除?

Hive Metastore 服务器现在与 Drill 相同。并且表中的记录不到20,000条。

最佳答案

只有 MapR 沙盒上的 MapR Drill 应该使用您正在使用的稀疏存储插件配置。在沙箱中,一切都是在幕后配置的。

嵌入式元存储服务

假设您使用的是 Drill 安装,而不是沙箱,并且您使用的是嵌入式 Metastore 服务(默认),configProps 需要看起来像这样(根据文档):

  "configProps": {
      "hive.metastore.uris": "",
      "javax.jdo.option.ConnectionURL": "jdbc:<database>://<host:port>/<metastore database>",
      "hive.metastore.warehouse.dir": "/tmp/drill_hive_wh",
      "fs.default.name": "file:///",
      "hive.metastore.sasl.enabled": "false"
    }

从存储插件配置中删除 "hive.metastore.uris": "thrift://:"。这是为了与远程配置单元元存储服务一起使用。

“javax.jdo.option.ConnectionURL”可能是一个 MySQL 数据库。 Hive metastore 服务提供对物理 DB 的访问,如 MySQL。 MySQL 存储元数据。 “fs.default.name”是数据所在的文件系统位置。

嵌入式 Metastore 配置仅用于测试,不适用于生产系统 per the docs .为了提高性能,请配置 remote metastore .另外,检查您使用的 Hive 版本的兼容性。开源 Apache Drill 1.0 支持 Hive 0.13。 Drill 1.1 及更高版本支持 Hive 1.0。

远程元存储服务

如果您使用的是远程 Metastore,“fs.default.name”应该指向主控制节点。例如,指向一个 NameNode。如果您使用的是 MapR Drill,“fs.default.name”应该是 maprfs:///。 MapR FileClient 从 mapr-clusters.conf 中计算出 CLDB 位置。启动 Metastore 服务,它作为一个单独的包安装在 Hive 之上:

hive --service metastore

如果您使用的是开源 Apache Drill,远程 Metastore 配置应该看起来像这样:

{
  "type": "hive",
  "enabled": true,
  "configProps": {
    "hive.metastore.uris": "thrift://mfs41.mystore:9083",
    "hive.metastore.sasl.enabled": "false",
    "fs.default.name": "maprfs://10.10.10.41/"
  }
}

关于hadoop - Apache Drill - 慢速查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639753/

相关文章:

mysql - sqoop 与 hdfs 命令

apache-spark - 与 SparkNLP 的句子相似性仅适用于带有一个句子的 Google Dataproc,当提供多个句子时失败

python : How to import list of files in directory from HDFS

java - 创建外部表配置单元,位置内部包含多个文件

apache - 在 Hive 中创建表时出现问题

hadoop - 当 Google 存储在属性中设置为位置时 MSCK 命令抛出错误

hadoop - 遍历 reducer 中的 IntWritable 数组给出 "Can only iterate over an array or an instance of java.lang.Iterable"

java - 在Windows上的Eclipse中配置Hadoop 2.6.0时出现问题

hadoop - 如何在 Spark 中处理 Map<Key,value>?

hadoop - 使用单个分析命令计算所有分区的配置单元表统计信息的任何方法?