2011-10-10 103 views
1

我有一个有50个节点的集群,每个节点有8个核心用于计算。 如果我有工作,我计划施加200减少,什么是更好的计算资源分配策略的更好的表现?Hadoop节点和核心分配策略

我的意思是分配50个节点和4个核心在他们每个人或分配25个节点和8核心为他们每个更好?在哪种情况下哪个更好?

回答

1

要回答你的问题,这取决于一些事情。 50个节点都将是总体较好,在我看来:

  • 如果你正在阅读大量的数据从磁盘,50个节点会更好,因为你会并行加载从磁盘2倍。
  • 如果您正在计算和处理大量数据,50个节点将会更好,因为核心数量不会以1:1的比例进行处理(即,2倍的核心数量不会超过2倍速度。同时,更多的处理器的规模接近1:1)。
  • Hadoop必须在这些节点上运行诸如TaskTracker和DataNode进程之类的东西,以及OS层的东西。那些“占用”核心也是如此。

但是,如果您主要关注的是网络,这里是具有50个节点的几个缺点:

  • 可能性较大,50个节点将是在两个机架。他们是在一个扁平的网络上,还是你必须处理它的机架通信?您必须相应地设置Hadoop;
  • 支持50个节点的网络交换机将比支持25个节点的网络交换机更昂贵;
  • 映射和reduce之间的网络混洗将导致交换机为您的50个节点群集提供更多的工作量,但大约相同数量的数据将通过网络传递。

即使有了这些网络问题,我想你会发现50个节点更好,只是因为节点的价值不仅仅是核心数量。你必须主要考虑你有多少个磁盘。

1

很难说,通常它总是“越高越好”。 更多的机器会更好地防止故障。

通常Hadoop可以使用商品硬件,你可以选择50个4核心的服务器。

但是我会选择8核心,如果他们会有更好的硬件,例如。更高的CPU频率,DDR3 RAM或10k rpm磁盘。