首页 / 专利库 / 自然灾害的预防与保护 / 地震 / Hadoop文件系统数据自定义分块方法

Hadoop文件系统数据自定义分方法

阅读:748发布:2024-01-01

专利汇可以提供Hadoop文件系统数据自定义分方法专利检索,专利查询,专利分析的服务。并且提出了一种Hadoop文件系统数据自定义分 块 方法,包括:对输入数据进行排序;根据预先设置的数据分块参数,对排序后的输入数据进行分块,以得到数据块,其中对排序后的输入数据进行分块包括:将每个数据块在排序后的输入数据中的起始 位置 和终止位置记录在与每个数据块相对应的分块信息中;以及基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理。,下面是Hadoop文件系统数据自定义分方法专利的具体信息内容。

1.一种Hadoop文件系统数据自定义分方法,包括:
对输入数据进行排序;
根据预先设置的数据分块参数,对排序后的输入数据进行分块,以得到数据块,其中对排序后的输入数据进行分块包括:将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中;以及
基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理。
2.根据权利要求1所述的Hadoop文件系统数据自定义分块方法,还包括:
在对输入数据进行排序之前,对输入数据进行归类处理,使得具有相同属性的数据集中在一起。
3.根据权利要求1所述的Hadoop文件系统数据自定义分块方法,其中,所述输入数据是基于Hadoop文件系统将实体数据固定分块后存储的数据。
4.根据权利要求1所述的Hadoop文件系统数据自定义分块方法,还包括:
根据所得到的数据块的数目启动并行处理单元,其中,可为每个数据块启动一个并行处理单元;以及
利用所启动的并行处理单元基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理。
5.根据权利要求1所述的Hadoop文件系统数据自定义分块方法,还包括:
对并行处理的处理结果进行归约处理。
6.根据权利要求1所述的Hadoop文件系统数据自定义分块方法,其中
所述输入数据为地震道集数据。
7.根据权利要求6所述的Hadoop文件系统数据自定义分块方法,其中对输入数据进行排序包括:
将偏移距相同的地震道集数据归类到一起,以形成共偏移距道集数据;以及按照偏移距值的大小对共偏移距道集数据进行排序。
8.根据权利要求7所述的Hadoop文件系统数据自定义分块方法,其中,根据预先设置的数据分块参数,对排序后的输入数据进行分块包括:
根据以下数据分块参数中的一个或多个,对排序后的共偏移距道集数据进行分块:最小偏移值、最大偏移距值、偏移距分组间隔、以及每个数据块中的最大道数。
9.根据权利要求6所述的Hadoop文件系统数据自定义分块方法,其中,将针对同一数据块的多个并行处理的结果对应值相加,以进行归约处理。
10.根据权利要求6所述的Hadoop文件系统数据自定义分块方法,其中,将针对不同数据块的每个并行处理的结果组合在一起,以进行归约处理。

说明书全文

Hadoop文件系统数据自定义分方法

技术领域

[0001] 本发明属于计算机领域中并行文件系统数据管理领域,具体涉及一种Hadoop文件系统数据自定义分块方法。

背景技术

[0002] Hadoop分布式文件系统HDFS(Hadoop Distributed File System)是Google文件系统GFS(Google File System)的开源版本,是一个高度容错的分布式文件系统,适合部署在廉价的大规模机器上。HDFS能够提供高吞吐量的数据访问,支持大文件存储,非常适合大规模数据集上的应用。HDFS是Hadoop的子项目,为Hadoop上层应用提供高吞吐量的可扩展的大文件存储服务,是Hadoop计算的基础
[0003] 图1为现有技术中HDFS的结构示意图,HDFS的基本结构采用主从模式,一个HDFS集群包括一个名字节点,它是一个管理文件命名空间和调节客户端访问文件的主服务器,当然还有一些数据节点,通常是一个节点一个机器,它来管理对应节点的存储。HDFS对外开放文件命名空间并允许用户数据以文件形式存储。
[0004] HDFS的内部机制是将一个文件分割成一个或多个块,这些块被存储在一组数据节点中。名字节点用来操作文件命名空间的文件或目录操作,如打开,关闭,重命名等等。它同时确定块与数据节点的映射。数据节点来负责来自文件系统客户的读写请求。数据节点同时还要执行块的创建,删除,和来自名字节点的块复制指令。
[0005] HDFS的设计是用于支持大文件的。运行在HDFS上的程序也是用于处理大数据集的。这些程序仅写一次数据,一次或多次读数据请求,并且这些读操作要求满足流式传输速度。HDFS支持文件的一次写多次读操作。HDFS中典型的块大小是64MB,一个HDFS文件可以被切分成多个64MB大小的块,这种固定分块方式,限制了Hadoop的应用领域,如在地震数据叠前偏移处理中,一次数据输入,需要多次不同分块方式处理,HDFS的固定数据分块方式无法满足要求。

发明内容

[0006] 本发明在HDFS固定数据分块的基础之上,提出了一种自定义数据描述性分块方法,在HDFS文件系统中实现了数据的自定义、描述性分块,解决HDFS在数据分块存取方式上采取实体数据固定分块方式,不能适应多变的数据存取要求的问题,提高了HDFS数据文件存取的通用性和灵活性。
[0007] 本发明一方面提出了一种Hadoop文件系统数据自定义分块方法,包括:对输入数据进行排序;根据预先设置的数据分块参数,对排序后的输入数据进行分块,以得到数据块,其中对排序后的输入数据进行分块包括:将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中;以及基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理。
[0008] 根据本发明的另一实施例,提出了一种Hadoop文件系统数据自定义分块装置,包括:用于对输入数据进行排序的部件;用于根据预先设置的数据分块参数,对排序后的输入数据进行分块,以得到数据块的部件,其中对排序后的输入数据进行分块包括:将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中;以及用于基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理的部件。
[0009] 本发明的各方面改进了HDFS文件存取方式,提高了HDFS数据文件存取的通用性和灵活性,为Hadoop技术的推广应用提供更高效文件存储服务。附图说明
[0010] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0011] 图1示出了现有技术中HDFS的结构示意图。
[0012] 图2示出了根据本发明的一个实施例的一种Hadoop文件系统数据自定义分块方法的流程图

具体实施方式

[0013] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0014] 图2示出了根据本发明的一个实施例的Hadoop文件系统数据自定义分块方法的流程图,在该实施例中,该方法包括:
[0015] 步骤201,对输入数据进行排序;
[0016] 步骤202,根据预先设置的数据分块参数,对排序后的输入数据进行分块,以得到数据块,其中对排序后的输入数据进行分块包括:将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中;
[0017] 步骤203,基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理。
[0018] 本实施例采用了根据预先设置的数据分块参数对排序后的输入数据进行分块并记录分块信息,再根据分块信息读取数据块的方式,这是一种不同于传统的实体固定分块方式的描述性自定义分块方式,其解决了HDFS在数据分块存取方式上采取实体数据固定分块方式,不能适应多变的数据存取要求的问题,提高了HDFS数据文件存取的通用性和灵活性,扩展了Hadoop云计算的应用范围。
[0019] 数据排序
[0020] 对输入数据进行排序的目的是为后续的描述性分块提供规则化的输入数据,保证数据分块的连续性,并使得后续分块处理中的分块信息可以简化为数据的起始位置和结束位置信息,使并行处理更高效。
[0021] 本领域技术人员应理解,对输入数据进行排序的原则可根据需要任意制定。在一个示例中,可以根据要执行的并行处理的特点(例如,并行处理对输入数据的处理顺序的要求等),对输入数据进行排序。
[0022] 在一个示例中,在排序之前可先对输入数据进行归类处理,使得具有相同属性的数据集中在一起,再进行排序。通过这种处理,可以进一步实现数据的按属性归类和有序化。
[0023] 在一个示例中,本实施例中的输入数据可以是基于Hadoop文件系统将实体数据固定分块后存储的数据。也就是说,本实施可以是建立在原有的固定分块基础之上的二次分块。然而本领域技术人员应理解,本实施例也可用于取代Hadoop文件系统中的固定分块。
[0024] 数据分块
[0025] 本实施例根据预先设置的数据分块参数对排序后的输入数据进行分块,实现了自定义分块。此外,本实施例通过将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中,来实现描述性分块。经过这样的自定义、描述性分块处理后,每个数据块对应一个分块信息,而实体数据保持不变,从而在保持实体数据存储方式不变的情况下,可以根据并行处理的需求随时对数据进行任意自定义分块处理。
[0026] 在一个示例中,分块参数是进行分块所需要的参数,其可由用户根据需要任意设定,从而满足用户需要的多种分块方式。分块参数可以任意设定是本实施例能够实现“自定义分块”的体现。
[0027] 并行处理
[0028] 在本实施例中,基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理,这种方式不受实体数据分块存储的限制,可在运行处理过程中实时地进行数据块访问和处理。
[0029] 在一个示例中,在并行处理之前,还可进一步包括:根据所得到的数据块的数目启动并行处理单元,其中,可为每个数据块启动一个并行处理单元。在启动并行处理单元后,可利用并行处理单元基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理。
[0030] 数据归约
[0031] 在一个示例中,本实施例的方法还可进一步包括数据归约的步骤,以对并行处理结果进行归约处理。可针对每个完成的并行处理分别进行归约处理,也可在所有并行处理完成后,再针对每个并行处理的处理结果进行归约处理。
[0032] 归约原则可根据分块原则来确定,例如如果分块原则是同一属性的输入数据分为一个数据块,则归约原则可以将针对每个数据块的输出结果经归约组合为一个数据结果。完成归约处理后,输出处理结果。
[0033] 本领域技术人员应理解,在无需进行归约操作的应用场景下,本实施例也可不包含该示例中的归约操作。
[0034] 应用示例
[0035] 以下,以地震道集数据作为输入数据为例,给出本发明实施例的一个应用示例。本领域技术人员应理解,该应用示例只是为了更好的理解本发明,其任何细节都不意在对本发明进行限制。
[0036] 数据排序
[0037] 常用的地震道集数据可包括共炮点道集数据和共中心点(CMP)道集数据,共炮点道集是指道集中的每一道属于同一炮采集的数据,共中心道集数据是指道集中的每一道数据的炮检点中心位置相同。
[0038] 在对地震道集数据进行并行处理之前,可进行根据本发明实施例的排序处理,此外,在排序处理之前还可进一步进行归类处理。在本应用示例中,归类可通过抽道集来实现,即将道集数据(例如共炮点道集数据或共中心点(CMP)道集数据)通过抽道集操作生成所需要的道集形式。例如,在主要需要解决共偏移距数据的分块处理问题的应用场景下,所需的道集形式可为共偏移距道集。共偏移距道集数据指道集中每一道数据的偏移距(炮点到检波点的距离)相同,因此可以将偏移距相同的道集数据归类到一起,形成共偏移距道集数据。
[0039] 可对归类之后的道集数据进行排序,以归类后得到共偏移距道集为例,排序过程可以是按照偏移距值的大小对共偏移距道集数据进行排序。
[0040] 数据分块
[0041] 可以根据预先设置的数据分块参数对排序后的地震道集数据进行分块。在该应用示例中,仍以共偏移距数据的分块为例,数据分块参数可以包括但不限于以下参数中的一个或多个:最小偏移值、最大偏移距值、偏移距分组间隔、以及每个数据块中的最大道数等。这些参数可由用户提供,以确定分块方式。将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中,从而实现了对地震道集数据的自定义、描述性数据分块。
[0042] 需要说明的是,为便于描述的目的,本应用示例以“共偏移距”原则为例进行描述,然而本领域技术人员应理解,数据分块和处理的原则不限于“共偏移距”,其可以是根据数据处理实际需要的任何原则,例如在炮域处理中,需要对数据进行炮集分块。在地震数据处理领域,主要的分块原则可包括偏移距分块,CMP道集分块,炮集分块等。
[0043] 并行处理
[0044] 可基于所述分块信息,从排序后的输入地震道集数据中读取相应的数据块,以进行并行处理。Hadoop文件系统的原处理方式是固定分块方式,即输入数据存入文件系统的时,已经被分成多块数据存储,此分块存储是在输入数据导入后就固定不变了。而在地震数据处理过程中,特别是叠前偏移处理过程中,对数据的分块要求是变化的,每次运行程序,用户可能需要不同的数据分块方式进行处理。在该应用示例中,利用本发明实施例的自定义、描述性分块并行处理方式解决了Hadoop的固定分块存储方式不能适应地震数据处理的问题,在地震数据处理过程中实现了实时地根据用户定义来任意进行数据分块,满足了地震数据处理的特殊需求。
[0045] 数据归约。
[0046] 该应用示例还可以包括归约处理,归约处理可根据分块原则不同而不同,仍以共偏移距处理为例,归约方式可根据偏移距的分组方式确定,例如,同一偏移距组(即同一数据块)的数据可以进行叠加归约处理,即将针对同一偏移距组的多个并行处理的结果对应值相加,生一个结果;不同偏移距组的数据可以进行组合归约处理,即将针对不同偏移距组每个并行处理的结果组合在一起。而对于炮域处理程序,最后的归约处理可进行叠加归约。完成归约处理后,输出处理结果。
[0047] 根据本发明的另一实施例,提出了一种Hadoop文件系统数据自定义分块装置,包括:用于对输入数据进行排序的部件;用于根据预先设置的数据分块参数,对排序后的输入数据进行分块,以得到数据块的部件,其中对排序后的输入数据进行分块包括:将每个数据块在排序后的输入数据中的起始位置和终止位置记录在与每个数据块相对应的分块信息中;以及用于基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理的部件。
[0048] 在一个示例中,该装置还可包括:用于在对输入数据进行排序之前,对输入数据进行归类处理,使得具有相同属性的数据集中在一起的部件。
[0049] 在一个示例中,所述输入数据可以是基于Hadoop文件系统将实体数据固定分块后存储的数据。
[0050] 在一个示例中,该装置还可包括:用于根据所得到的数据块的数目启动并行处理单元的部件,其中,可为每个数据块启动一个并行处理单元;以及用于利用所启动的并行处理单元基于所述分块信息,从排序后的输入数据中读取相应的数据块,以进行并行处理的部件。
[0051] 在一个示例中,该装置还可包括:用于对并行处理的处理结果进行归约处理的部件。
[0052] 在一个示例中,输入数据可以为地震道集数据。
[0053] 在一个示例中,对输入数据进行排序可以包括:将偏移距相同的地震道集数据归类到一起,以形成共偏移距道集数据;以及按照偏移距值的大小对共偏移距道集数据进行排序。
[0054] 在一个示例中,根据预先设置的数据分块参数,对排序后的输入数据进行分块可以包括:根据以下数据分块参数中的一个或多个,对排序后的共偏移距道集数据进行分块:最小偏移值、最大偏移距值、偏移距分组间隔、以及每个数据块中的最大道数。
[0055] 在一个示例中,该装置还可包括用于将针对同一数据块的多个并行处理的结果对应值相加,以实现归约处理的部件。
[0056] 在一个示例中,该装置还可包括用于将针对不同数据块每个并行处理的结果组合在一起,以实现归约处理的部件。
[0057] 本发明实施例提出了一种自定义、描述性数据分块机制,在HDFS文件系统上实现了数据的自定义、描述性分块。在HDFS固定数据分块机制的基础上,利用数据描述信息,对数据进行自定义分块,在不改变实体数据存储的情况下,实现了数据的任意分块。实现了数据的灵活分块,扩展了HDFS文件系统的数据管理功能和应用领域。
[0058] 在地震数据处理应用场景中,通过应用本发明实施例的自定义、描述性分块机制,可以实现地震叠前偏移处理技术的Hadoop并行处理,提高了海量数据处理能
[0059] 本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
[0060] 计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号
[0061] 这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0062] 用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
[0063] 这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0064] 这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0065] 也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0066] 附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0067] 以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈