没有合适的资源?快使用搜索试试~ 我知道了~
首页HDFSEC:提升HDFS存储效率的纠删码融合策略
HDFSEC:提升HDFS存储效率的纠删码融合策略
1 下载量 140 浏览量
更新于2024-08-30
收藏 402KB PDF 举报
HDFSEC是Hadoop分布式文件系统(HDFS)的一项创新扩展,旨在将纠删码技术融入HDFS,解决现有多副本策略导致的存储利用率低的问题。传统的HDFS通过复制每个数据块的多个副本来保证数据的可靠性,这种机制虽然保证了数据安全,但存储效率只有1/3,对于大量存储需求的大数据环境显得不经济。 Erasure Coding(EC)是一种纠错编码技术,它能够以更低的冗余度提供更高的存储利用率。相比于多副本,EC通过将数据分割成多个块,并生成校验块,即使部分数据丢失也能通过剩余数据块和校验块重构丢失的信息。HDFS-RAID是早期尝试将EC应用到HDFS的例子,但它存在一些局限性,如校验块可见性、元数据管理和性能瓶颈等。 HDFSEC的出现解决了这些问题,它将纠删码内置于HDFS,无需外部系统的依赖,降低了元数据管理复杂性和对NameNode的压力。英特尔和Cloudera等大公司共同推动了这个项目,使得HDFSEC不仅在技术上更加成熟,而且在社区层面得到广泛支持。HDFSEC的优势在于提升存储效率,降低硬件成本,同时保持或提高数据的可靠性,这对于现代大数据环境中的存储优化至关重要。 在实施HDFSEC时,开发人员需要考虑编码器和解码器的选择,确保它们能够在高吞吐量和大规模数据处理场景下高效运行。此外,为了最大化效益,可能还需要根据具体业务需求调整数据块大小和校验块的数量,以达到最佳的存储和性能平衡。 HDFSEC是HDFS向更高效、更灵活的存储解决方案迈出的重要一步,它将纠删码技术与Hadoop生态相结合,为大数据时代的存储挑战提供了有力的应对策略。
资源详情
资源推荐
HDFSEC:将纠删码技术融入:将纠删码技术融入HDFS
在HDFS中,可靠性通过多副本的方式来实现,从而较低的存储利用率成为时下基于HDFS应用的主要问题之一。本文将详细
介绍HDFS一个新的特性——Erasure Coding(EC), 它在保证同等(或者更高)可靠性的情况下将存储利用率提高了近一
倍。
背景
近些年,随着大数据技术的发展,HDFS作为Hadoop的核心模块之一得到了广泛的应用。然而,随着需要存储的数据被越来
越快的产生,越来越高的HDFS存储利用率要求被提出。而对于一个分布式文件系统来说,可靠性必不可少。因此,在HDFS
中每一份数据都有两个副本,这也使得存储利用率仅为1/3,每TB数据都需要占用3TB的存储空间。因此,在保证可靠性的前
提下如何提高存储利用率已成为当前HDFS应用的主要问题之一。
纠删码技术起源于通信传输领域,后被逐渐运用到存储系统中。它对数据进行分块,然后计算出一些冗余的校验块。当一部分
数据块丢失时,可以通过剩余的数据块和校验块计算出丢失的数据块。Facebook 的开源项目HDFS-RAID在HDFS之上使用了
纠删码技术。HDFS-RAID对属于同一文件的块分组并依次生成校验块,将这些校验块构成独立的文件,并与原始的数据文件
一一对应。RaidNode作为一个新的角色被引入进来,它负责从DataNode中读取文件的数据块,计算出校验块, 并写入校验
文件中;同时,它还周期性地检查被编码了的文件是否存在块丢失,如有丢失则重新进行计算以恢复丢失的块。HDFS-RAID
的优点是其构建于HDFS之上,不需要修改HDFS本已经复杂的内部逻辑,但缺点也显而易见:校验文件对用户是可见的,存
在被误删除的可能;依赖于MySQL和MapReduce来存储元数据和生成校验文件;RaidNode需要周期性地查找丢失的块,加
重了NameNode的负担;使用的编解码器性能较差,在实际应用中往往不能满足要求。另外,由于缺乏维护,HDFS已将
HDFS-RAID的代码从contrib包中移除,这给使用HDFS-RAID带来不少困难。
2014下半年,英特尔和Cloudera共同提出了将纠删码融入到HDFS内部的想法和设计(HDFS EC),随后吸引了包括
Hortonworks、华为、Yahoo!等众多公司的参与,使之成为Hadoop开源社区较为活跃的一个项目。将纠删码融入到HDFS内
部带来了诸多好处:它不再需要任何的外部依赖,用户使用起来更为方便;其代码成为HDFS的一部分,便于维护;可以充分
利用HDFS的内部机制使性能得到最大程度的优化。纠删码的编解码性能对其在HDFS中的应用起着至关重要的作用,如果不
利用硬件方面的优化就很难得到理想的性能。英特尔的智能存储加速库(ISA-L)提供了对纠删码编解码的优化,极大的提升
了其性能,这一点将在实验部分做详细的阐述。HDFS EC项目主要要实现以下的功能:
用户可以读和写一个条形布局(Striping Layout,定义见下文)的文件;如果该文件的一个块丢失,后台能够检查出并恢复;
如果在读的过程中发现数据丢失,能够立即解码出丢失的数据从而不影响读操作。
支持将一个多备份模式(HDFS原有模式)的文件转换成连续布局(Contiguous Layout,定义见下文),以及从连续布局转
换成多备份模式。
编解码器将作为插件,用户可指定文件所使用的编解码器。
由于HDFS的内部逻辑已经相当复杂,HDFS EC项目将分阶段进行:第一阶段(HDFS-7285)已经实现第1个功能,第二阶
段(HDFS-8030)正在进行中,将实现第2和第3个功能。本文将主要阐述第一阶段(HDFS-7285)的设计与实现。
相关概念
纠删码(Erasure Code)与 Reed Solomon码
在存储系统中,纠删码技术主要是通过利用纠删码算法将原始的数据进行编码得到校验,并将数据和校验一并存储起来,以达
到容错的目的。其基本思想是将k块原始的数据元素通过一定的编码计算,得到m块校验元素。对于这k+m块元素,当其中
任意的m块元素出错(包括数据和校验出错),均可以通过对应的重构算法恢复出原来的k块数据。生成校验的过程被成为编
码(encoding),恢复丢失数据块的过程被称为解码(decoding)。
Reed-Solomon(RS)码是存储系统较为常用的一种纠删码,它有两个参数k和m,记为RS(k,m)。如图1所示,k个数据块组
成一个向量被乘上一个生成矩阵(Generator Matrix)GT从而得到一个码字(codeword)向量,该向量由k个数据块和m个校
验块构成。如果一个数据块丢失,可以用(GT)-1乘以码字向量来恢复出丢失的数据块。RS(k,m)最多可容忍m个块(包括数据
块和校验块)丢失。
下载后可阅读完整内容,剩余6页未读,立即下载
weixin_38730389
- 粉丝: 7
- 资源: 915
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功