2012-03-14 115 views
1

我是hadoop的新手,希望更好地理解HDFS中复制的工作方式。假设我有一个10个节点的系统(每个节点1TB),总容量为10TB。如果我有一个复制因子3,那么我有每个文件1个原始副本和3个副本。所以,实际上,我的存储中只有25%是原始数据。所以我的10TB集群实际上只有2.5TB的原始(未复制)数据。HDFS复制 - 数据存储

请让我知道我的思路是否正确。

回答

4

你的想法有点偏离。复制因子为3意味着您的数据副本总共有3个。更具体地说,对于您的文件,每个块将有3个副本,所以如果您的文件由10个块组成,则10个节点中将有30个总块,或者每个节点约有3个块。

您认为10x1TB集群的容量小于10TB的复制因子为3,但实际上其功能容量约为3.3TB,实际容量略低,这是因为执行任何操作需要的空间处理,保存临时文件等。

+0

谢谢克里斯!我试图理解这个工作的内部原理。假设我执行扫描以查找特定模式,此扫描是否会针对文件中每个块的所有3个副本进行,或者只是该块的原始/第一个副本? – 2012-03-14 19:20:50

+0

只是块的一个副本。选择的副本是随机的 - 没有“主”副本。 – 2012-03-14 19:28:37