【发布时间】:2016-01-01 21:15:48
【问题描述】:
考虑一个场景: 如果我增加 HDFS 中数据的复制因子;假设在 10 节点集群中,我将 RF = 5 而不是 3(默认),它会提高我的数据处理任务的性能吗?
与默认复制设置相比,映射阶段是否会更快完成?
对reduce阶段会有影响吗?
【问题讨论】:
标签: hadoop
考虑一个场景: 如果我增加 HDFS 中数据的复制因子;假设在 10 节点集群中,我将 RF = 5 而不是 3(默认),它会提高我的数据处理任务的性能吗?
与默认复制设置相比,映射阶段是否会更快完成?
对reduce阶段会有影响吗?
【问题讨论】:
标签: hadoop
复制对存储的影响:
Larger the replication factor, lesser the number of files you can store in the cluster。HADOOP_NAMENODE_OPTS)。 复制对计算的影响:
映射器:
由于这些原因,具有较高复制因子的映射器可能比具有较低复制因子的映射器更早完成。
由于通常映射器的数量总是高于化简器的数量,因此您可能会看到工作绩效的整体提升。
减速机:
总体而言,您的映射器可能会以更高的复制因子执行得更快。但是,实际的性能提升取决于各种因素,例如集群的大小、带宽、NameNode 内存等。
在回答了这个问题后,我在这里遇到了另一个类似的问题:Map Job Performance on cluster。这还包含更多信息,以及各种研究论文的链接。
【讨论】:
将复制因子设置为5 将导致HDFS 名称节点在集群中的可用数据节点上维护5 文件块的总副本。 namenode 执行的此复制操作将导致更高的网络带宽使用,具体取决于要复制的文件的大小和网络的速度。
复制因子在 map 或 reduce 阶段都没有直接影响。在运行 map-reduce 作业时复制块时,您最初可能会看到性能下降 - 这可能会导致严重的网络延迟,具体取决于文件的大小和您的网络带宽。
整个集群中的 5 复制因子意味着 4 的数据节点可以从集群中消失,并且您仍然有足够的节点来访问 HDFS 中的所有文件,而不会出现文件损坏或丢失块.如果您的 RF = 4 则可以松动 3 台服务器,并且仍然可以访问 HDFS 中的所有文件。
设置较高的复制因子会增加您的整体 HDFS 使用量,因此如果您的总数据大小为 1TB,则 RF=3 意味着您的 HDFS 使用量将为 3TB,因为切碎的块在整个数据集中复制 n-1 (3-1 = 2) 次集群。
【讨论】: