在我的一个应用程序中,我使用presto和hivemetastore从s3查询数据。为了在生产环境中配置hivemetastore(我将在docker上部署presto和hive),我只想知道,presto是使用hivemetastore为并发查询创建多个连接,还是使用hivemetastore创建单个连接并为所有并发查询使用相同的连接?
例如,假设在我的应用程序示例中运行100个查询,那么presto是使用hive metastore创建100个连接,还是只创建一个连接并对所有查询使用相同的连接?
我对所有这些事情都很陌生,所以可能会遗漏一些明显的东西。提前谢谢。
1条答案
按热度按时间iqih9akk1#
presto将为每个元存储操作(thrift rpc调用)创建到元存储的单独连接。没有连接池或重用,因此连接的寿命很短。在计划检索表元数据期间和运行查询检索分区元数据期间访问元存储。对于表元数据,单个查询不应发出并发请求。对于分区元数据,通过
hive.split-loader-concurrency
config属性,但这也包括列出文件系统上的文件。metastore调用通常很快,因此并发连接的数量通常应该比并发presto查询的数量少得多。