CN106027638A - 一种基于混合编码的hadoop数据分发方法 - Google Patents
一种基于混合编码的hadoop数据分发方法 Download PDFInfo
- Publication number
- CN106027638A CN106027638A CN201610330144.2A CN201610330144A CN106027638A CN 106027638 A CN106027638 A CN 106027638A CN 201610330144 A CN201610330144 A CN 201610330144A CN 106027638 A CN106027638 A CN 106027638A
- Authority
- CN
- China
- Prior art keywords
- block
- file
- copy
- stripe
- raid1
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
本发明公开了一种基于混合编码的hadoop数据分发方法。该方法包括,改变传统的hadoop系统中的三副本存储方式,结合RAID1和RAID5技术对数据进行分发存储,当用户将文件写入集群,文件被划分为多个block存储在集群中。根据RAID1的概念,每个block会生成一个副本,设定一个stripe长度将block进行存储,一个stripe中的block及其副本分别放置在不同机架下的节点中,根据RAID5将一个stripe中的block进行异或产生一个校验块,校验块同样也遵循RAID1的方式进行存储。在节点损坏导致block丢失时,可以根据副本或校验块对文件进行恢复,保证文件存储的可靠性。本发明是基于RAID1+5方式存储,故有较好的容错性能,另外,使用RAID1+5的混合模式相较于传统hadoop的三副本存储方式节省了存储空间。
Description
技术领域
本发明属于分布式系统领域,更具体地,涉及一种基于混合编码的hadoop数据分发方法。
背景技术
随着计算机技术和网络应用的普及和发展,日益增加的用户数量,使得数据存储量呈现爆炸性增长。如何更可靠且高效的存储大数据,给数据存储系统提出了考验。
传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,将数据分散存储在多台独立的设备上,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
Hadoop是一个由Apache基金会所开发的分布式系统基础架构,用户可以在不了解分布式底层细节的情况下,开发分布式程序,这样就可以充分利用集群的威力进行高速运算和存储。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce为海量的数据提供了计算。
Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件上的分布式文件系统,它和现有的分布式文件系统有很多共同点,同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上;同时,HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用;还有就是,HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。对外部客户机而言,HDFS就像一个传统的分级文件系统,用户可以创建、删除、移动或重命名文件等等。但是HDFS的架构是基于一组特定的节点构建的,这是由它自身的特点决定的。这些节点包括一个NameNode,它在HDFS内部提供元数据服务;多个DataNode,它为HDFS提供存储块。在hdfs集群中,有机架感知功能,即可以将几个datanode部署在一个机架上,这样的优势是相同机架上的网络带宽远大于不同机架的网络带宽。为了防止数据丢失,hdfs提供了三副本冗余机制,即每一个块会存放为三份,一二份存放在同一个机架下,第三个副本存放在另外一个机架下。
但这样的三副本冗余机制显然还存在着一个严重的问题,三副本的冗余存储会占用大量的空间。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于混合编码的hadoop数据分发方法,其目的在于使用RAID1+5的策略来进行数据的分发存储。RAID1保证了在丢失一份副本内的block时可以快速进行恢复,RAID5保证了在两份副本都丢失block时可以进行解码恢复,而RAID1+5结合起来,显著减少了原来三副本情况下所占用的存储空间,由此解决降低系统空间占用,保证存储系统可靠性的技术问题。
为实现上述目的,本发明提供了一种基于混合编码的hadoop数据分发方法,包括:当hadoop集群被启动,client请求向集群写入数据,文件被划分为block,以stripe的方式根据RAID1+5方式进行存储;当集群中某个节点中某个block的一个副本或两个副本丢失时,可以根据RAID5对block进行恢复;当集群中某个stripe中丢失了多个block的一个副本时,可以根据RAID1对block进行恢复;集群中发生损坏或丢失的block在恢复后会保持RAID1+5的存储方式。
本发明的一个实施例中,所述步骤(1)具体包括如下子步骤:
(1.1)当文件被写入时,文件会被分为block的形式存储到集群中,根据RAID1的概念,每个block会有一个副本;
(1.2)设置一个stripe长度M,block根据M进行划分,当一个文件的block不足一个M时,将下一个文件的block写入相同stripe中;
(1.3)根据RAID5的概念,同一个stripe的block会生成一个校验block,它们会存放在同一个rack下;
(1.4)根据RAID1的概念,同一个stripe的block副本和对应的校验block的副本会存放在另一个rack下。
本发明的一个实施例中,所述步骤(2)具体包括如下子步骤:
(2.1)当client端对某个文件进行读取,文件丢失了一个block时,利用RAID5生成的parity块对block进行恢复;
(2.2)当文件丢失了同一个block的两个副本时,分别在rack内利用RAID5生成的parity块对block进行恢复。
本发明的一个实施例中,所述步骤(3)具体包括:
(3.1)当client端对某个文件进行读取,文件丢失了多个block的一个副本时,利用RAID1存储的另外一个副本对其进行恢复;
(3.2)当同一个stripe中的两个block同时损坏两个副本时,无法进行恢复。
本发明的一个实施例中,所述步骤(4)具体包括当block发生错误进行恢复后,同一个stripe的block和产生的校验block存放在同一个机架下,该stripe对应的副本和校验block的副本存放在另一个机架下。
本发明的一个实施例中,所述步骤(1)中的M取值为10。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,由于本发明通过设置二副本和校验块,在系统中发现block丢失或损坏时可以良好的进行多种方式的快速恢复,不会被机架间的网络带宽所限制,同时本发明与目前hdfs中所设置的三副本存储方式相比,可以良好的节省存储空间,能够取得保证系统可靠性、降低硬件需求的有益效果。
附图说明
图1是本发明实施例中hdfs结构图;
图2是本发明实施例中数据写入过程图;
图3是本发明实施例中数据存储及编码图;
图4是本发明实施例中的数据恢复图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
如图1所示,本发明实施例中hdfs结构图具体描述如下:
Hdfs架构主要由Namenode和Datanode两部分构成,由于hdfs的机架感知特性,一个Rack下会包含多个Datanode,一个集群中会设置多个Rack。
如图2所示,本发明实施例中数据写入过程图具体描述如下:
Client端将文件写入hdfs流程:client写入数据时,先将数据复制到本地,写满一个block后,向Namenode申请2个Datanode的地址,将block写入其中的一个block,写满后,再由该Datanode传送到下一个Datanode,当前block写入完毕后,再进行下一个block的传送,直到文件全部写入完毕。同时,在Namenode中会记录block存储在哪个Datanode节点的元数据,以便文件的读取。
如图3所示,本发明实施例中数据存储及编码图具体描述如下:
数据以block的形式写入Datanode中,当block的数量满足一个stripe长度后,会重新选择两个rack,确保一个stripe上的block存储在同一个rack下,其副本存储在另一个rack下。根据raid5的概念,一个stripe长度的block会生成一个parity块,parity块及副本也会存储在源block相同的两个rack下。
如图4所示,本发明实施例中数据恢复图具体描述如下:
当读取一个文件而文件丢失了block时,假如丢失了一个block,可以根据Raid1产生的副本进行恢复,也可以根据raid5产生的parity块进行解码来恢复;假如丢失了一个副本的2个block,可以根据raid5产生的parity块进行解码来恢复;假如丢失了一个副本的多个block,可以根据raid1产生的副本进行恢复。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于混合编码的hadoop数据分发方法,其特征在于,包括如下步骤:
(1)当hadoop集群被启动,客户端client请求向集群写入数据,文件被划分为块block,以条带stripe的方式根据RAID1+5方式进行存储;
(2)当集群中某个节点中某个block的一个副本或两个副本丢失时,根据RAID5对block进行恢复;
(3)当集群中某个stripe中丢失了多个block的一个副本时,根据RAID1对block进行恢复;
(4)集群中发生损坏或丢失的block在恢复后会保持RAID1+5的存储方式。
2.如权利要求1所述的对象存储系统中一种基于混合编码的hadoop数据分发方法,其特征在于,所述步骤(1)具体包括如下子步骤:
(1.1)当文件被写入时,文件会被分为block的形式存储到集群中,根据RAID1的概念,每个block会有一个副本;
(1.2)设置一个stripe长度M,block根据M进行划分,当一个文件的block不足一个M时,将下一个文件的block写入相同stripe中;
(1.3)根据RAID5的概念,同一个stripe的block会生成一个校验block,它们会存放在同一个rack下;
(1.4)根据RAID1的概念,同一个stripe的block副本和对应的校验block的副本会存放在另一个rack下。
3.如权利要求1或2所述的对象存储系统中一种基于混合编码的hadoop数据分发方法,其特征在于,所述步骤(2)具体包括如下子步骤:
(2.1)当client端对某个文件进行读取,文件丢失了一个block时,利用RAID5生成的parity块对block进行恢复;
(2.2)当文件丢失了同一个block的两个副本时,分别在rack内利用RAID5生成的parity块对block进行恢复。
4.如权利要求1或2所述的对象存储系统中一种基于混合编码的hadoop数据分发方法,其特征在于,所述步骤(3)具体包括:
(3.1)当client端对某个文件进行读取,文件丢失了多个block的一个副本时,利用RAID1存储的另外一个副本对其进行恢复;
(3.2)当同一个stripe中的两个block同时损坏两个副本时,无法进行恢复。
5.如权利要求1或2所述的对象存储系统中一种基于混合编码的hadoop数据分发方法,其特征在于,所述步骤(4)具体包括当block发生错误进行恢复后,同一个stripe的block和产生的校验block存放在同一个机架下,该stripe对应的副本和校验block的副本存放在另一个机架下。
6.如权利要求1或2所述的对象存储系统中一种基于混合编码的hadoop数据分发方法,其特征在于,所述步骤(1)中的M取值为10。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610330144.2A CN106027638B (zh) | 2016-05-18 | 2016-05-18 | 一种基于混合编码的hadoop数据分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610330144.2A CN106027638B (zh) | 2016-05-18 | 2016-05-18 | 一种基于混合编码的hadoop数据分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106027638A true CN106027638A (zh) | 2016-10-12 |
CN106027638B CN106027638B (zh) | 2019-04-12 |
Family
ID=57097724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610330144.2A Active CN106027638B (zh) | 2016-05-18 | 2016-05-18 | 一种基于混合编码的hadoop数据分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106027638B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959356A (zh) * | 2016-04-26 | 2016-09-21 | 华中科技大学 | 一种实现多云存储容错转换机制的方法 |
CN107133334A (zh) * | 2017-05-15 | 2017-09-05 | 成都优孚达信息技术有限公司 | 基于高带宽存储系统的数据同步方法 |
WO2018076954A1 (zh) * | 2016-10-31 | 2018-05-03 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及系统 |
CN109032513A (zh) * | 2018-07-16 | 2018-12-18 | 山东大学 | 基于ssd和hdd的raid架构及其备份、重建方法 |
CN113204520A (zh) * | 2021-04-28 | 2021-08-03 | 武汉大学 | 一种基于分布式文件系统的遥感数据快速并发读写方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5559764A (en) * | 1994-08-18 | 1996-09-24 | International Business Machines Corporation | HMC: A hybrid mirror-and-chained data replication method to support high data availability for disk arrays |
CN101923441A (zh) * | 2009-06-17 | 2010-12-22 | 成都市华为赛门铁克科技有限公司 | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 |
CN102667738A (zh) * | 2009-10-09 | 2012-09-12 | 提琴存储器公司 | 具有多个raid组分条的内存系统及其方法 |
CN103152395A (zh) * | 2013-02-05 | 2013-06-12 | 北京奇虎科技有限公司 | 一种分布式文件系统的存储方法及装置 |
CN103761058A (zh) * | 2014-01-23 | 2014-04-30 | 天津中科蓝鲸信息技术有限公司 | Raid1和raid4混合结构网络存储系统及方法 |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN104615606A (zh) * | 2013-11-05 | 2015-05-13 | 阿里巴巴集团控股有限公司 | 一种Hadoop分布式文件系统及其管理方法 |
CN105094696A (zh) * | 2015-07-06 | 2015-11-25 | 中国科学院计算技术研究所 | 基于raid1和raid4混合结构转换过程数据可靠性保证方法及装置 |
-
2016
- 2016-05-18 CN CN201610330144.2A patent/CN106027638B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5559764A (en) * | 1994-08-18 | 1996-09-24 | International Business Machines Corporation | HMC: A hybrid mirror-and-chained data replication method to support high data availability for disk arrays |
CN101923441A (zh) * | 2009-06-17 | 2010-12-22 | 成都市华为赛门铁克科技有限公司 | 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统 |
CN102667738A (zh) * | 2009-10-09 | 2012-09-12 | 提琴存储器公司 | 具有多个raid组分条的内存系统及其方法 |
CN103152395A (zh) * | 2013-02-05 | 2013-06-12 | 北京奇虎科技有限公司 | 一种分布式文件系统的存储方法及装置 |
CN104615606A (zh) * | 2013-11-05 | 2015-05-13 | 阿里巴巴集团控股有限公司 | 一种Hadoop分布式文件系统及其管理方法 |
CN103761058A (zh) * | 2014-01-23 | 2014-04-30 | 天津中科蓝鲸信息技术有限公司 | Raid1和raid4混合结构网络存储系统及方法 |
CN104391930A (zh) * | 2014-11-21 | 2015-03-04 | 用友软件股份有限公司 | 分布式文件存储装置和方法 |
CN105094696A (zh) * | 2015-07-06 | 2015-11-25 | 中国科学院计算技术研究所 | 基于raid1和raid4混合结构转换过程数据可靠性保证方法及装置 |
Non-Patent Citations (1)
Title |
---|
毛波: ""盘阵列的数据布局技术研究"", 《中国博士学位论文全文数据库 信息科技辑》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105959356A (zh) * | 2016-04-26 | 2016-09-21 | 华中科技大学 | 一种实现多云存储容错转换机制的方法 |
CN105959356B (zh) * | 2016-04-26 | 2019-04-12 | 华中科技大学 | 一种实现多云存储容错转换机制的方法 |
WO2018076954A1 (zh) * | 2016-10-31 | 2018-05-03 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及系统 |
CN108008909A (zh) * | 2016-10-31 | 2018-05-08 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及系统 |
CN108008909B (zh) * | 2016-10-31 | 2019-11-22 | 杭州海康威视数字技术股份有限公司 | 一种数据存储方法、装置及系统 |
CN107133334A (zh) * | 2017-05-15 | 2017-09-05 | 成都优孚达信息技术有限公司 | 基于高带宽存储系统的数据同步方法 |
CN107133334B (zh) * | 2017-05-15 | 2020-01-14 | 成都优孚达信息技术有限公司 | 基于高带宽存储系统的数据同步方法 |
CN109032513A (zh) * | 2018-07-16 | 2018-12-18 | 山东大学 | 基于ssd和hdd的raid架构及其备份、重建方法 |
CN113204520A (zh) * | 2021-04-28 | 2021-08-03 | 武汉大学 | 一种基于分布式文件系统的遥感数据快速并发读写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106027638B (zh) | 2019-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11954002B1 (en) | Automatically provisioning mediation services for a storage system | |
US10387673B2 (en) | Fully managed account level blob data encryption in a distributed storage environment | |
US10733053B1 (en) | Disaster recovery for high-bandwidth distributed archives | |
US11451391B1 (en) | Encryption key management in a storage system | |
US10764045B2 (en) | Encrypting object index in a distributed storage environment | |
CN106407040B (zh) | 一种远程数据复制方法及系统 | |
US10659225B2 (en) | Encrypting existing live unencrypted data using age-based garbage collection | |
US10248356B2 (en) | Using scratch extents to facilitate copying operations in an append-only storage system | |
US10685037B2 (en) | Volume cohorts in object-redundant storage systems | |
CN103268318B (zh) | 一种强一致性的分布式键值数据库系统及其读写方法 | |
CN103152395B (zh) | 一种分布式文件系统的存储方法及装置 | |
US20220217049A1 (en) | Path Management For Container Clusters That Access Persistent Storage | |
CN102521072B (zh) | 虚拟磁带库设备及数据恢复方法 | |
CN106027638A (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN106484559B (zh) | 一种校验矩阵的构造方法及水平阵列纠删码的构造方法 | |
EP3537687B1 (en) | Access method for distributed storage system, related device and related system | |
CN106708653B (zh) | 一种基于纠删码与多副本的混合税务大数据安全保护方法 | |
US9405643B2 (en) | Multi-level lookup architecture to facilitate failure recovery | |
CN105530294A (zh) | 一种海量数据分布式存储的方法 | |
US10540103B1 (en) | Storage device group split technique for extent pool with hybrid capacity storage devices system and method | |
CN106873902B (zh) | 一种文件存储系统、数据调度方法及数据节点 | |
US10592138B1 (en) | Avoiding storage device overlap in raid extent sub group and keeping relationship balance on mapped raid system and method | |
US9684668B1 (en) | Systems and methods for performing lookups on distributed deduplicated data systems | |
US10997040B1 (en) | System and method for weight based data protection | |
US20150039847A1 (en) | Balancing data distribution in a fault-tolerant storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |