Apache Drill - 慢速查询

时间:2015-11-10 21:14:17

标签: 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条。

1 个答案:

答案 0 :(得分:0)

MapR沙箱上只有MapR Drill才能使用您正在使用的稀疏存储插件配置。在沙盒中,事物是在封面下配置的。

嵌入式METASTORE服务

假设您使用的是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"
    }

删除&#34; hive.metastore.uris&#34;:&#34; thrift://:&#34;从您的存储插件配置。这适用于远程hive Metastore服务。

&#34; javax.jdo.option.ConnectionURL&#34;可能是一个MySQL数据库。 Hive Metastore服务提供对MySQL等物理数据库的访问。 MySQL存储元数据。 &#34; fs.default.name&#34;是数据所在的文件系统位置。

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

远程地面服务

如果您正在使用远程Metastore,那么&#34; fs.default.name&#34;应该指向主控制节点。例如,指向NameNode。如果你正在使用MapR Drill,&#34; fs.default.name&#34;应该是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/"
  }
}