Hadoop hdfs 参数设置

本文介绍了Hadoop HDFS中dfs.replication参数的设置,该参数用于指定文件上传时的副本数,默认为3。分布式系统上的文件副本数在上传时确定,之后修改该参数不会影响已上传文件,仅影响后续使用默认副本数的新文件。

(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%:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值