将默认HDFS复制因子从3更改是否会影响映射器的性能?

有一个HDFS / Hadoop集群设置,并正在调整。

我想知道,如果将默认的HDFS复制因子(默认值:3)更改为更大的值将会提高映射器的性能,但增加磁盘存储使用的代价是显而易见的。

我的推理是,如果数据已经复制到更多的节点,映射器作业可以并行运行在更多的节点,没有任何数据stream/复制?

任何人有任何意见?

从概念上说,你的结论是正确的:在更多地方可用的块,调度器有更多的自由来分配节点本地任务(与input块在同一台机器上),更less的数据将被stream式传输。

然而,在采取这一步之前,你确定块stream是减速的来源吗? 除非HDFS节点的一小部分托pipe您的工作负载所需的块,否则增加复制因子并不能真正帮助您。 换句话说,如果您已经在相关块的分布方面拥有一个平衡良好的集群,那么将这些块放置在其他节点上并不会加速执行,因为stream并不是您的瓶颈。

一个快速检查将是给定作业的JobTracker Web界面上的节点本地和机架本地统计信息。

如果stream媒体真的是减速,是磁盘I / O还是networkingI / O是瓶颈? 复制增加的一些替代方法可能是提高(4),然后降低(3)块复制,这应该在整个群集中提供更均匀的分布。 或者,卸载并重新加载文件。

给出一些更详细的信息,说明为什么你认为这是一个瓶颈,可能还有其他一些合适的解决scheme。