首先 dfs.replication这个参数是个client参数,即node level参数。需要在每台datanode上设置。
其实默认为3个副本已经够用了,设置太多也没什么用。
一个文件,上传到hdfs上时指定的是几个副本就是几个。以后你修改了副本数,对已经上传了的文件也不会起作用。可以再上传文件的同时指定创建的副本数
hadoop dfs -d dfs.replication=1 -put 70m logs/2
可以通过命令来更改已经上传的文件的副本数:
hadoop fs -setrep -r 3 /
查看当前hdfs的副本数
hadoop fsck -locations
fsck started by hadoop from /172.18.6.112 for path / at thu oct 27 13:24:25 cst 2011
....................status: healthy
total size: 4834251860 b
total dirs: 21
total files: 20
total blocks (validated): 82 (avg. block size 58954290 b)
minimally replicated blocks: 82 (100.0 %)
over-replicated blocks: 0 (0.0 %)
under-replicated blocks: 0 (0.0 %)
mis-replicated blocks: 0 (0.0 %)
default replication factor: 3
average block replication: 3.0
corrupt blocks: 0
missing replicas: 0 (0.0 %)
number of data-nodes: 3
number of racks: 1
fsck ended at thu oct 27 13:24:25 cst 2011 in 10 milliseconds
the filesystem under path '/' is healthy
某个文件的副本数,可以通过ls中的文件描述符看到
hadoop dfs -ls
-rw-r--r-- 3 hadoop supergroup 153748148 2011-10-27 16:11 /user/hadoop/logs/201108/impression_witspixel2011080100.thin.log.gz
如果你只有3个datanode,但是你却指定副本数为4,是不会生效的,因为每个datanode上只能存放一个副本。
参考:http://blog.csdn.net/lskyne/article/details/8898666
posted on 2018-11-26 11:52
xzc 阅读(738)
评论(0) 编辑 收藏 所属分类:
hadoop