有一个HDFS/Hadoop集群设置,并且正在考虑调优。
我想知道,如果将默认的HDFS复制因子(默认:3)更改为更大的东西,是否会提高映射器的性能,而这显然是增加磁盘存储使用的代价呢?
我的推理是,如果数据已经被复制到更多的节点,映射器作业可以在更多的节点上并行运行,而不需要任何数据流/复制?
有人有什么意见吗?
发布于 2011-08-17 20:31:33
从概念上讲,您的结论是正确的:在更多的地方可以使用块,调度程序有更多的自由来分配节点本地任务(与输入块在同一台机器上),并且会流更少的数据。
然而,在采取这一步骤之前,您确定块流是经济放缓的根源吗?除非HDFS节点的一小部分承载了您的工作负载所需的块,否则增加复制因子并不能真正帮助您。换句话说,如果在相关块的分布方面已经有了一个平衡良好的集群,那么将这些块放置在其他节点上并不会大大加快执行速度,因为流式并不是您的瓶颈。
一个快速检查将是节点本地和机架本地统计在JobTracker网络接口上给定的工作。
如果流确实是放缓,那么瓶颈是磁盘I/O还是网络I/O?复制增加的一些替代方法可能是提高(4),然后降低(3)块复制,这将在整个集群中提供更均匀的分布。或者,卸载和重新加载文件。
给出更多的细节,为什么你认为这是一个瓶颈,并可能有一些其他适当的解决方案。
https://serverfault.com/questions/285373
复制相似问题