我在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条。
答案 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/"
}
}