Presto的硬件要求

ben*_*ioT 7 presto

我怀疑答案是"它取决于",但是有没有关于计划用于Presto的硬件类型的一般指导?

由于Presto使用协调器和一组工作人员,并且工作人员使用数据运行,因此我认为主要问题是为协调器提供足够的RAM,为工作人员向协调员发送的部分结果有足够的网络带宽等.

如果你可以提供一些关于如何适当调整大小的一般想法,我很乐意听到它们.

Dai*_*rom 28

大多数人在他们已有的Hadoop节点上运行Presto.在Facebook,我们通常在Hadoop集群内的几个节点上运行Presto,以分散网络负载.

一般来说,我会选择新集群的行业标准比率:每个磁盘有2个内核和2-4个内存,如果你负担得起的话,还有10个千兆网络.在您拥有一些机器(4+)之后,使用您对数据的查询进行基准测试.如果您需要调整比率,这应该是显而易见的.

在从头开始调整集群硬件的方面需要考虑以下事项:

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

在Facebook,我们按照以下方式运行Presto流程:

  • 我们运行具有16 GB堆的JVM,以便为OS缓冲区留出大部分可用内存
  • 在我们运行Presto的机器上,我们不运行MapReduce任务
  • 我们所使用的大多数Presto机器都有16个真正的核心,我们使用处理器关联(很快就是cgroups)将Presto限制为12个核心(因此DFS客户端和其他东西可以轻松运行)
  • 我们的大多数服务器都在10千兆网络上,但我们确实有一个使用1千兆位的大型老式集群(工作正常)
  • 我们对协调员和工作人员使用相同的配置