考虑一个场景: 如果我增加HDFS中数据的复制因子;假设在10节点集群中我使RF = 5而不是3(默认值),它是否会提高我的数据处理任务的性能?
与默认复制设置相比,地图阶段会更快完成吗?
对减少阶段会有影响吗?
答案 0 :(得分:1)
复制对存储的影响:
Larger the replication factor, lesser the number of files you can store in the cluster
。HADOOP_NAMENODE_OPTS
)。 复制对计算的影响:
<强>映射器:强>
由于这些原因,有可能的是,复制因子越高,映射器可以比复制因子更早完成。
由于映射器的数量通常总是高于减速器的数量,因此您的工作性能可能会有所改善。
<强>减速机:强>
总的来说,您的映射器可以使用更高的复制因子执行得更快。但是,实际的性能提升取决于各种因素,例如群集的大小,带宽,NameNode内存等。
在回答这个问题后,我在SO中遇到了另一个类似的问题:Map Job Performance on cluster。这还包含更多信息,以及各种研究论文的链接。
答案 1 :(得分:0)
将复制因子设置为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
)次整个集群。