gpt4 book ai didi

presto - Presto 的硬件要求

转载 作者:行者123 更新时间:2023-12-04 09:01:01 28 4
gpt4 key购买 nike

我怀疑答案是“视情况而定”,但是否有关于计划用于 Presto 的硬件类型的一般指导?

由于 Presto 使用一个协调器和一组工作器,并且工作器使用数据运行,我想主要问题将是协调器有足够的 RAM,工作器发送到协调器的部分结果有足够的网络带宽等。

如果您可以提供一些关于如何适当调整大小的一般想法,我很乐意听取他们的意见。

最佳答案

大多数人都在运行Trino (formerly PrestoSQL)在他们已经拥有的 Hadoop 节点上。在 Facebook,我们通常在 Hadoop 集群中的几个节点上运行 Presto 以分散网络负载。
通常,我会采用新集群的行业标准比率:每个磁盘 2 个内核和 2-4 GB 内存,如果您负担得起,还可以使用 10 GB 网络。在您拥有几台机器 (4+) 后,使用您对数据的查询进行基准测试。如果您需要调整比率,这应该是显而易见的。
在从头开始为集群确定硬件大小时,需要考虑以下几点:

  • 总数据大小将决定您需要的磁盘数量。 HDFS 的开销很大,因此您将需要大量磁盘。
  • CPU 速度与磁盘的比率取决于热数据(您正在处理的数据)和冷数据(存档数据)之间的比率。如果您刚刚启动您的数据仓库,您将需要大量 CPU,因为所有数据都是新的和热的。另一方面,大多数物理磁盘只能以如此快的速度传输数据,因此在某些时候更多的 CPU 无济于事。
  • CPU 速度与内存的比率取决于要执行的聚合和连接的大小以及要缓存的(热)数据量。目前,Presto 需要最终聚合结果和用于连接的哈希表以适合单个机器上的内存(我们正在积极致力于消除这些限制)。如果您有大量内存,操作系统将缓存磁盘页面,这将显着提高查询性能。

  • 2013 年,我们在 Facebook 运行我们的 Presto 流程如下:
  • 我们使用 16 GB 堆运行我们的 JVM,以将大部分内存留给操作系统缓冲区
  • 在我们运行 Presto 的机器上,我们没有运行 MapReduce 任务。
  • 大多数 Presto 机器有 16 个真正的内核,并使用处理器关联(最终是 cgroups)将 Presto 限制为 12 个内核(因此 Hadoop 数据节点进程和其他东西可以轻松运行)。
  • 大多数服务器都在 10 Gb 网络上,但我们确实有一个使用 1 Gb 的大型旧集群(工作正常)。
  • 我们对协调器和工作器使用了相同的配置。

  • 最近,我们运行了以下内容:
  • 这些机器有 256 GB 的内存,我们运行了 200 GB 的 Java 堆
  • 大多数机器有 24-32 个真实内核,而 Presto 被分配了所有内核。
  • 这些机器只有最小的本地日志存储,所有表数据都是远程的(在一个专有的分布式文件系统中)。
  • 大多数服务器都有一个到光纤网络的 25 Gb 网络连接。
  • 协调器和工作器具有相似的配置。
  • 关于presto - Presto 的硬件要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19863857/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com