Presto hdfs 本地读取和预聚合



在 5 个节点集群上运行 Presto 大型扫描查询,看起来只有一个节点是查询协调器,并通过网络从 5 个 HDFS 节点读取数据。

所有 presto 进程都在数据节点上运行。

有没有办法让 5 个节点使用快捷方式本地读取从 hdfs 读取数据?

presto 节点是否在进行任何预聚合?

从您的问题中不清楚您是否在与HDFS数据节点相同的计算机上安装了Presto工作线程。 如果没有,安装说明将帮助您执行此操作。

在所有数据节点上都有 Presto 工作线程后,Presto 应在从本地 DFS 节点访问数据时自动执行本地读取。 Presto 更喜欢在与 DFS 节点相同的计算机上调度工作,但如果该机器过载,它将在另一台机器上调度工作,因此您通常会获得一些远程读取。 大多数读取应该是本地的,您可以使用协调器上的com.facebook.presto.execution:name=NodeScheduler mbean来验证此分发。

Presto 始终在叶工作节点上执行部分聚合。

如果您在所有节点上都安装了 presto,并且希望 presto worker 处理本地条带,则需要将 "hive.force-local-sscheduleduling" 会话标志转换为 true。在我看到的presto版本(0.153)中,默认情况下这是错误的。

详情请见:https://github.com/prestodb/presto/issues/894

https://github.com/prestodb/presto/pull/1770

相关内容

  • 没有找到相关文章

最新更新