首先 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 閱讀(873)
評論(0) 編輯 收藏 所屬分類:
hadoop