副本数
- 伪分布式:只有一台机器,副本数据只能为1,相当于一个文件夹不可能创建2个名字一模一样的文件
- 生产上:副本数(dfs.replication )一般是官方默认参数:3
例题:块大小128M,副本数3份
一个文件260m,请问多少块,多少实际存储?
260%128=2…4m 3个块*3个副本=9个块
260m * 3 =780m
副本数考量
生产上,副本数一般是官方默认参数: 3份,但在实际生产过程中,可能会因为存储空间不够,数据量太快太多,而将副本数减少为2。也可以把历史数据迁移到阿里云的oss存储和AWS的S3存储,在代码中将hdfs dfs -ls hdfs://hadoop001:9000/换成hdfs dfs -ls oss://hadoop001:9000/或hdfs dfs -ls s3://hadoop001:9000/
副本放置策略
- 第一个副本:一般与客户端在同一个节点;如果客户端在集群之外,则随机挑选一个不太慢、CPU不太忙的节点
- 第二个副本:放置在与第一个副本不同的机架的节点上
- 第三个副本:与第二个副本相同机架的不同节点上
只有当第一个块的副本全都写完了,才会开始写第二个块