Presto的硬件要求

时间:2013-11-08 16:22:51

标签: presto

我怀疑答案是“它取决于”,但是对于计划用于Presto的硬件类型是否存在任何一般性指导?

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

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

1 个答案:

答案 0 :(得分:26)

大多数人都在他们已有的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千兆位的大型老式集群(工作正常)
  • 我们对协调员和工作人员使用相同的配置