Hadoop 3.X, 纠删码

本文探讨了HDFS2.X中使用纠删码技术来优化数据存储的方式,减少了因使用三副本带来的磁盘和带宽资源消耗。介绍了纠删码的基本架构、配置及管理命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 问题

HDFS 2.X默认使用3副本, 造成200%的磁盘消耗, 以及带宽消耗

纠删码(Erasure Coding)技术, 在保障数据容灾性的同时, 减少数据的的膨胀

Replication is expensive – the default 3x replication scheme in HDFS has 200% overhead in storage space and other resources (e.g., network bandwidth). However, for warm and cold datasets with relatively low I/O activities, additional block replicas are rarely accessed during normal operations, but still consume the same amount of resources as the first replica.

2. 架构

  • NameNode扩展, 条带化会将数据切分成多个小文件, 为了减少NameNode的内存消耗, 引入block组概念, 由原来块的管理转换成块组的管理
  • 客户端扩展, 读/写流并行, 因为数据切分后分发到不同的DataNode, 所以客户端可以并行写入/读取, 可以充分利用多块磁盘
  • DataNode扩展, 新增ECWorker服务用于恢复失效的块文件

3. 配置

默认情况下, 纠删码策略是关闭的, 通过hdfs ec -enablePolicy -policy <policyName>指令启用

ES默认策略参数dfs.namenode.ec.system.default.policy, 未指定策略名称时使用

  1. 策略命名规范: 编码器-数据块个数-奇偶校验块个数-块大小(codec-num data blocks-num parity blocks-cell size)
  2. 内置6种策略: RS-3-2-1024k, RS-6-3-1024k, RS-10-4-1024k, RS-LEGACY-6-3-1024k, XOR-2-1-1024k 以及REPLICATION

4. 管理命令

   hdfs ec [generic options]
     [-setPolicy -path <path> [-policy <policyName>] [-replicate]]
     [-getPolicy -path <path>]
     [-unsetPolicy -path <path>]
     [-listPolicies]
     [-addPolicies -policyFile <file>]
     [-listCodecs]
     [-enablePolicy -policy <policyName>]
     [-disablePolicy -policy <policyName>]
     [-help [cmd ...]]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值