我的namenode中只有:
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
在我的数据节点中,我有:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
现在我的问题是,复制因子是3还是1?
目前 hdfs dfs -ls hdfs:///user/hadoop-user/data/0/0/0
显示1个复制因子:
-rw-r--r-- 1 hadoop-user supergroup 68313 2015-11-06 19:32 hdfs:///user/hadoop-user/data/0/0/0/00099954tnemhcatta.bin
谢谢你的回答。
2条答案
按热度按时间cig3rfwq1#
默认情况下,复制因子为
3
,它是大多数分布式系统的标准。如果复制因子设置为3(hdfs中的默认值),则会有一个原始块和两个副本。大多数时候,当我们在单节点集群(单机)上工作时,我们把它1
. 因为如果我们拿3,那就没有好处了,因为所有的拷贝都在一台机器上。这么简单的理解。在多节点集群中,复制因子应为3,在单机中,复制因子应为1。whlutmcx2#
打开hdfs-site.xml文件。该文件通常位于hadoop安装目录的conf/文件夹中。将以下属性更改或添加到hdfs-site.xml:
您还可以使用hadoop fs shell在每个文件的基础上更改复制因子。
[jpanda@localhost ~]$hadoop fs–setrep–w 3/my/文件
或者,您可以更改目录下所有文件的复制因子。
[jpanda@localhost ~]$hadoop fs–setrep–w 3-r/my/dir