我在用hadoop做一些实验。为此,我必须使用一些配置选项,如块的大小和复制因子。对于复制因子,我尝试了以下命令:
$HADOOP_HOME/bin/hadoop fs -setrep -w -R $var input
其中,“input”是我想要更改其复制因子的文件,$var表示我想要的复制因子。
当$var=1时,它起作用。否则,将产生以下错误:
Replication 2 set: input
Waiting for input..............................................................
..................................
不断地不确定地加分。我能做什么?
2条答案
按热度按时间bmvo0sr51#
由于您只有一个datanode,hdfs无法满足您的请求。这个
-w
标志意味着要等到复制完成,而复制永远不会完成。hadoop在每个节点上只保留一个副本,因此单个节点的复制因子不可能大于1。6qfn3psc2#
使用可选选项“-w”可能需要很多时间。。因为你说的是等待复制完成。这可能需要很长时间。
这取决于要设置复制因子的文件大小
当$var=1时,它只需删除不同节点上的剩余副本(假设您的副本是多节点集群)
当$var值大于现有值时,这将花费大量时间,因为namenode必须查找哪个datanode是空闲的,并且准备好接受副本,并且必须复制文件。
如果群集正忙于运行任何其他复制操作,这也可能导致延迟
要检查复制是否已完成。。。。
hadoop fsck/path/to/file
上面的命令显示了块的数量、块的位置以及文件的更多细节。