Hadoop hdfs 參數設置

(1)dfs.replication

指定hdfs上傳文件時的副本數,默認是3。
分佈式系統上的文件副本數,由上傳時的系統副本數決定,不會受後面replication的更改而變化,除非用命令來更改文件的副本數。
因爲dfs.replication實質上是client參數,所以可以在上傳文件時指定具體replication數量,屬性dfs.replication是不指定具體replication時的採用默認備份數,因爲dfs.replication這個參數是個client參數,即node level參數,需要在每臺datanode上設置。其實默認爲3個副本已經夠用了,設置太多也沒什麼用。
文件上傳後,備份數已定,修改dfs.replication不會影響以前的文件副本數量,也不會影響後面上傳文件時指定備份數的文件,隻影響後面採用默認備份數的文件。

在上傳文件的同時指定創建的副本數
[kaadmin@oceanbase06 ~]$ hdfs dfs -D dfs.replication=1 -put ord_pay.csv /lijk
[kaadmin@oceanbase06 ~]$ hdfs dfs -D dfs.replication=3 -put test1.txt /lijk
[kaadmin@oceanbase06 ~]$ hdfs dfs -ls /lijk
Found 2 items
-rw-r--r--   1 kaadmin supergroup       4128 2018-07-06 10:40 /lijk/ord_pay.csv
-rw-r--r--   3 kaadmin supergroup        240 2018-07-06 15:27 /lijk/test1.txt

可以通過命令來更改已經上傳的文件的副本數:
-- hadoop fs -setrep -R 3 / 修改整個目錄下所有文件
[kaadmin@oceanbase06 ~]$ hdfs dfs -setrep 3 /lijk/ord_pay.csv
Replication 3 set: /lijk/ord_pay.csv
[kaadmin@oceanbase06 ~]$ hdfs dfs -ls /lijk
-rw-r--r--   3 kaadmin supergroup       4128 2018-07-06 10:40 /lijk/ord_pay.csv

查看當前hdfs的副本數
hdfs fsck -locations
[kaadmin@oceanbase06 ~]$ hdfs fsck /
FSCK started by kaadmin (auth:SIMPLE) from /192.168.0.156 for path / at Fri Jul 06 15:31:01 CST 2018
.............................................................................................Status: HEALTHY
 Total size:    21314523438 B
 Total dirs:    10
 Total files:   93
 Total symlinks:                0
 Total blocks (validated):      237 (avg. block size 89934698 B)
 Minimally replicated blocks:   237 (100.0 %)
 Over-replicated blocks:        0 (0.0 %)
 Under-replicated blocks:       0 (0.0 %)
 Mis-replicated blocks:         0 (0.0 %)
 Default replication factor:    1           #默認設置的副本數是1
 Average block replication:     1.0168777   #由於修改了幾個小文件的副本數,所以平均每個block的副本書略微大約1
                                            #如果所有文件的副本書都是1,則此參數的值爲1
 Corrupt blocks:                0
 Missing replicas:              0 (0.0 %)
 Number of data-nodes:          3
 Number of racks:               1
FSCK ended at Fri Jul 06 15:31:01 CST 2018 in 6 milliseconds

The filesystem under path '/' is HEALTHY


某個文件的副本數,可以通過ls中的文件描述符看到
[kaadmin@oceanbase06 ~]$ hdfs dfs -ls /lijk
Found 2 items
-rw-r--r--   1(副本數) kaadmin supergroup       4128 2018-07-06 10:40 /lijk/ord_pay.csv
-rw-r--r--   3(副本數) kaadmin supergroup        240 2018-07-06 15:27 /lijk/test1.txt

如果你只有3個datanode,但是你卻指定副本數爲4,是不會生效的,因爲每個datanode上只能存放一個副本。
hadoop fsck -locations 可以看到相應的提示信息,可以看到副本丟失率(Missing replicas)爲33.33%:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章