在我的一个应用程序中,我一直在使用presto和hive-metastore从s3查询数据。 为了在生产环境上配置hive-metastore(我将在仓库单独的容器上部署presto和hive)只是想知道,presto是否与hive-metastore创建了多个连接以进行并发查询,或者是否与hive创建了单个连接元存储区,并将其用于所有并发查询吗?
例如,假设在我的应用程序中运行了100个查询,那么是否会与hive-metastore一起创建100个连接,还是只创建一个连接并将其用于所有查询?
我对所有这些都是陌生的,因此可能缺少明显的东西。预先感谢。
答案 0 :(得分:2)
Presto将为每个metastore操作(Thrift RPC调用)创建一个到Metastore的单独连接。没有连接池或重用,因此连接是短暂的。在计划以检索表元数据期间以及在运行查询以检索分区元数据期间访问元存储。对于表元数据,单个查询不应发出并发请求。对于分区元数据,并发是通过hive.split-loader-concurrency
config属性控制的,尽管它也包括列出文件系统上的文件。 Metastore调用通常速度很快,因此并发连接的数量通常应比并发Presto查询的数量低得多。