登 录
注 册
< 大 数 据
Flink
Hadoop
Spark
Hive
HBase
Kafka
其他框架
Kerberos服务介绍与部署
Hadoop HA简介
HDFS手动故障转移
HDFS手动故障转移示例
HDFS自动故障转移
YARN自动故障转移
Hadoop白名单与扩容
HDFS存储优化-纠删码
HDFS冷热存储分离
HDFS慢磁盘监控
HDFS小文件归档
源码分析-NN启动(一)
源码分析-NN启动(二)
源码分析-NN启动(三)
热门推荐>>>
中台架构
中台建设与架构
HBase
HBased对接Hive
Linux
Nginx高可用
Python
数据导出工具
Flink
3分钟搭建Flink SQL测试环境
Kafka
Kafka对接Flume
深度学习
卷积神经网络
数据结构与算法
选择合适的算法
MySQL
数据备份恢复
计算机系统
信号量同步线程
Hive
Hive调优参数大全
其他框架
Azkaban Flow1.0与2.0
ClickHouse
表引擎-其他类型
技术成长
最好的职业建议
精选书单
技术成长书单—机器学习
技术资讯
数据在线:计算将成为公共服务
开发工具
IntelliJ IDEA 20年发展回顾(二)
系统工具
Mac命令行工具
虚拟化
内存虚拟化概述
云原生
云原生构建现代化应用
云服务
一文搞懂公有云、私有云...
Java
Spring Boot依赖注入与Runners
Go
Go函数与方法
SQL
SQL模板
安全常识
一文读懂SSO
当前位置:
首页
>>
Hadoop
>>
HDFS存储优化-纠删码
HDFS存储优化-纠删码
2021-07-24 16:46:52 星期六 阅读:860
HDFS默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。Hadoop3.x引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 ![](/static/images/article_images/1627115541.4198816.jpeg) #### 纠删码命令 ``` hdfs ec -help hdfs ec -listPolices # 查看当前Hadoop支持的纠删码种类 ``` #### 纠删码策略介绍 | 纠删码策略 | 解释 | 每个单元大小 | | :------------ | :------------ | | RS-3-2-1024k | 使用RS编码,每3个数据单元,生成2个校验单元,共5个单元,也就是说:这5个单元中,只要有任意的3个单元存在(不管是数据单元还是校验单元,只要总数=3),就可以得到原始数据 | 1024k=1024*1024=1048576| | RS-10-4-1024k | 使用RS编码,每10个数据单元(cell),生成4个校验单元,共14个单元,也就是说:这14个单元中,只要有任意的10个单元存在(不管是数据单元还是校验单元,只要总数=10),就可以得到原始数据 |1024k=1024*1024=1048576 | | RS-6-3-1024k | 使用RS编码,每6个数据单元,生成3个校验单元,共9个单元,也就是说:这9个单元中,只要有任意的6个单元存在(不管是数据单元还是校验单元,只要总数=6),就可以得到原始数据 | 1024k=1024*1024=1048576| | RS-LEGACY-6-3-1024k | 策略和上面的RS-6-3-1024k一样,只是编码的算法用的是rs-legacy |1024k=1024*1024=1048576 | | XOR-2-1-1024k | 使用XOR编码(速度比RS编码快),每2个数据单元,生成1个校验单元,共3个单元,也就是说:这3个单元中,只要有任意的2个单元存在(不管是数据单元还是校验单元,只要总数=2),就可以得到原始数据| 1024k=1024*1024=1048576| **`纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。默认只开启对RS-6-3-1024k策略的支持,如要使用别的策略需要提前启用`** #### 纠删码案例实操 假设现在需要对HDFS的/input目录设置为RS-3-2-1024k策略,操作步骤如下 1、开启对RS-3-2-1024K策略支持 ``` hdfs ec -enablePolicy -policy RS-3-2-1024k ``` >Erasure coding policy RS-3-2-1024k is enabled 2、创建HDFS目录,并设置RS-3-2-1024K策略 ``` hdfs ec -setPolicy -path /input -policy RS-3-2-1024k ``` 3、上传文件,查看文件编码后的存储情况 ``` hdfs dfs -put web.log ``` 注:上传的文件需要大于2M才能看出效果。(低于2M,只有一个数据单元和两个校验单元) 4、查看/input的数据单元和校验单元,并作破坏实验,分别删除校验单元和数据单元后,再从hdfs下载web.log文件看师傅正常