hdfs分布式地在datanode中存储数据

时间:2013-02-06 07:46:32

标签: hadoop hdfs

我构建了HDFS(2个DataNodes)。 我将数据存储在HDFS的数据节点中。

我想使用两个数据节点来平衡存储数据。 但是当我使用CLIhadoop fs -put

时,我只存储了一个数据节点

有没有人有解决方案如何将数据完全存储为两个独立的数据?

2 个答案:

答案 0 :(得分:1)

听起来你问的是如何设置复制因子。如果您有2个数据节点,则复制因子为2将确保所有文件都存储在两个节点上。您可以在Hadoop conf目录中的hdfs-site.xml中进行设置。你想设置:

<property>
  <name>dfs.replication</name>
  <value>2</value>
</property>

您还可以运行setrep命令来更改特定文件或目录的复制因子:

hadoop fs -setrep -R 2 <path>

-R当然会使它递归。

答案 1 :(得分:1)

如果你的复制因子设置正确,你真的只想平衡使用日期:

hadoop balancer [-threshold <threshold>]

在Hadoop documentation页面上有关于重新平衡器的许多信息(PDF格式)。