CN104407811B - 一种基于云计算的合并io装置 - Google Patents
一种基于云计算的合并io装置 Download PDFInfo
- Publication number
- CN104407811B CN104407811B CN201410640777.4A CN201410640777A CN104407811B CN 104407811 B CN104407811 B CN 104407811B CN 201410640777 A CN201410640777 A CN 201410640777A CN 104407811 B CN104407811 B CN 104407811B
- Authority
- CN
- China
- Prior art keywords
- data
- task
- input
- atomic
- data block
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于云计算的合并IO装置,包括任务分解器,用于在接收到批量任务时,提取出每个任务的输入信息和输出信息;输入合并器,以原子数据块为单位,分别将输入信息中相同的原子数据块合并为一个原子数据块;输出合并器,用于将输出信息及对应任务名分别合并为对应的一个数组,每个任务只保留对应其在不同数组中的序号值;智能数据总线,用于以原子数据块为单位管理输入和输出信息,并以原子数据块为单位向hadoop传递以输入或输出信息为对应读写内容的读写数据。本发明在批量处理多个任务时,提取合并每个任务的输入和输出信息,共享相同的数据,把需要使用的数据,映射入内存,最大限度的使用内存,提升读写效率。
Description
技术领域
本发明涉及数据处理领域,特别是一种基于云计算的合并IO装置。
背景技术
Hadoop是一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large dataset)的应用程序。
大型数据量一般都是T级别或P级别(1T=1024GB,1P=1024TB),对于数据密集型的任务,在hadoop执行mapreduce的时候(MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算,其极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上),大部分时间都是用在磁盘和网络读写上面,而系统的CPU和内存都没有被充分的利用起来。假设一个任务读取一个P级的数据需要的时间为T,则批量N个任务同时处理的情况下,可能需要的时间为T*N,处理的速度太慢,效率太低。
发明内容
为解决上述问题,本发明的目的在于提供一种基于云计算的合并IO装置,把Hadoop读写时可能需要使用的数据,通过内存映射的方式,最大限度的使用内存,减少对磁盘和网络的读写,提升读写效率。
本发明解决其问题所采用的技术方案是:
一种基于云计算的合并IO装置,包括:
任务分解器,用于在接收到批量任务时,提取出每个任务的输入信息和输出信息;
输入合并器,以原子数据块为单位,分别将输入信息中相同的原子数据块合并为一个原子数据块;
输出合并器,用于将输出信息及对应任务名分别合并为对应的一个数组,每个任务只保留对应其在不同数组中的序号值;
智能数据总线,用于以原子数据块为单位管理输入和输出信息,并以原子数据块为单位向hadoop传递以输入或输出信息为对应读写内容的读写数据。
进一步,所述每个任务的输入信息包括输入数据的地址及输入数据的时间范围,以输入信息作为value值,任务分解器以对应任务的任务名作为key值,将每个任务的key值与value值存入至任务分解器的输入缓存对象中。
进一步,所述每个任务的输出信息包括输出数据地址,任务分解器以输出信息作为value值,以对应任务的任务名作为key值,将每个任务的key值与value值存入至任务分解器的输出缓存对象中。
进一步,所述输入合并器以输入缓存对象中存储的数据作为合并对象,根据每个任务的输入数据的地址及输入数据的时间范围判断是否有相同的原子数据块,如果有,则将其合并为一个原子数据块。
进一步,所述输出合并器以输出缓存对象中的数据作为合并对象,首先对不同任务的key值与value值进行分析合并,之后,分别将key值与value值并成对应一个大的key值数组和value值数组,每个任务只保留对应其在key值数组和value值数组中的序号值。
进一步,所述智能数据总线为与hadoop通信的唯一接口,且
当hadoop读取数据时,其每次读取的数据大小均为智能数据总线处理后的输入数据,此输入数据的大小为原子数据块的整数倍,不足以零补充;
当hadoop写入数据时,其首先将数据传输至智能数据总线,智能数据总线将写入数据拼装成原子数据块的整数倍大小的输出数据后,再统一写入磁盘。
进一步,所述合并IO装置还包括数据缓存器,当系统内存不能承受过多的原子数据块时,智能数据总线将多余的原子数据块下放给数据缓存器,数据缓存器用于根据原子数据块的下放时间信息构成时间索引树。
进一步,所述时间索引树的树枝分为三级,其中,第1级树枝存放天,第2级树枝存放小时,第3级树枝存放分钟,叶子节点存放原子数据块,且时间索引树的树枝节点全部存放内存中,叶子节点上的原子数据块经过压缩后,存放至磁盘。
进一步,所述原子数据块具有权重,权重的大小与该原子数据块被不同任务重复使用的次数成正比,当智能数据总线将多余的原子数据块下放给数据缓存器时,首先下放权利最小的原子数据块。
进一步,所述原子数据块的大小为1024KB。
本发明的有益效果是:
本发明采用一种基于云计算的合并IO装置,在批量处理多个任务的时候,提取每个任务的输入和输出信息,改变目前hadoop只是通过磁盘来读写数据和缓存数据的方式,共享相同的数据,把可能需要被使用的数据,通过内存映射的方式,最大限度的使用内存,尽量把数据存放到内存,减少对磁盘和网络读写,提升读写效率。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明的原理示意图。
具体实施方式
实施例1:
参照图1所示,本发明提供了一种基于云计算的合并IO装置,包括:
任务分解器,用于在接收到批量任务时,提取出每个任务的输入信息和输出信息;
输入合并器,以原子数据块为单位,分别将输入信息中相同的原子数据块合并为一个原子数据块;
输出合并器,用于将输出信息及对应任务名分别合并为对应的一个数组,每个任务只保留对应其在不同数组中的序号值;
智能数据总线,用于以原子数据块为单位管理输入和输出信息,并以原子数据块为单位向hadoop传递以输入或输出信息为对应读写内容的读写数据。
其中,所述每个任务的输入信息包括输入数据的地址及输入数据的时间范围,任务分解器以输入信息作为value值,以对应任务的任务名作为key值,将每个任务的key值与value值存入至任务分解器的输入缓存对象中。
输入缓存对象存储于内存之中,当任务分解器提取输入信息后,将输入缓存对象传递至输入合并器,输入合并器根据每个任务的输入数据的地址和输入数据的时间范围进行分析,判断在本地磁盘中是否有相同的原子数据块,其中,每个原子数据块的大小被规定为1024k,且每个原子数据块均有一个权重,此权重的大小与该原子数据块被不同任务重复使用的次数成正比,如果有相同的原子数据块,则将输入缓存对象中的key值与value值进行对应合并,减小输入缓存对象的空间,释放对应内存空间,提升内存利用效率。
其中,所述每个任务的输出信息包括输出数据地址,任务分解器以输出信息作为value值,以对应任务的任务名作为key值,将每个任务的key值与value值存入至任务分解器的输出缓存对象中。
输出缓存对象存储于内存中,当任务分解器提取输出信息后,把输出缓存对象传递给输出合并器。输出合并器就输出的key和value值进行分析,把多个输出key和value值分别对应合并成一个大的key值数组和value值数组,每个任务只是保留key值数组和value值数组里面的对应的数组序号值。
本发明设置了与hadoop通信的唯一接口——智能数据总线。当hadoop读取数据时,hadoop就会从智能数据总线读取数据,每次读取的数据大小都是原子数据块的整数倍,不够用零来补充;当hadoop写数据时,hadoop就会从把数据写入智能数据总线,从hadoop提交的数据,不会被立即写入到磁盘,而是首先被智能数据总线拼装成原子数据块的整数倍后,统一写入磁盘。智能数据总线统一管理原子数据块。如果当前系统内存比较大,则保存到系统内存中的原子数据块就多;如果当前系统内存比较小,则保存到系统内存中的原子数据块就少。其中,智能数据总线将原子数据块添加入内存时,按照原子数据块的权重,由大到小进行添加,智能数据总线将原子数据块从内存中删除时,按照原子数据块的权重,由小到大进行删除。
智能数据总线是输入和输出数据的管理者,且以原子数据块为单位管理数据。当hadoop读取数据时,其每次读取的数据大小均为智能数据总线处理后的输入数据,此输入数据的大小为原子数据块的整数倍,不足以零补充;当hadoop写入数据时,其首先将数据传输至智能数据总线,智能数据总线将写入数据拼装成原子数据块的整数倍大小的输出数据后,再统一写入磁盘。由此,每次读写的数据均为原子数据块的整数倍,提升了读写效率。
由于智能数据总线要实时向内存中添加原子数据块或从内存中删除原子数据块,为了提高操作速度,本发明设置了数据缓存器,主要是通过时间索引树来管理磁盘上缓存数据,此缓存数据主要是智能数据总线管理的动态原子数据块。当系统内存不能承受过多的数据时,智能数据总线就把多余的原子数据块交给数据缓存器,数据缓存器会根据原子数据块的时间信息,构成时间索引树。本发明将时间索引树树枝分3级,第1级树枝存放天,第2级树枝存放小时,第3级树枝存放分钟,叶子节点存放原子数据块。其中时间索引树的树枝节点全部存放内存中,叶子节点上的原子数据块经过压缩后,存放到磁盘。
设置数据缓存器,可进一步提高智能数据总线的处理效率,提升整体运行速度。
实施例2:
本实施便例以具体的实例作为说明,对本发明作进一步的解释。
现在同时提交任务1与任务2,任务1与任务2具体如下:
任务1:从hdfs的bssap目录中,汇总2014年6月10日 9点到12点 打电话的用户次数,结果输出到callcounter文件中。
任务2:从hdfs的bssap目录中,汇总2014年6月10日 10点到13点 打电话和发短信的用户次数,结果输出到callsmcounter文件中。
具体流程参照图1所示:
(1)任务分解器从任务1与2里面提取出输入和输出信息。任务1的输入地址为hdfs中的bssap目录,时间是2014年6月10日 9点到12点;任务2的输入地址为hdfs中的bssap目录,时间是2014年6月10日 10点到13点。任务1的输出地址是callcounter文件中,其中key值是电话号码,value是打电话的个数;任务2的输出地址是callsmcounter文件中,其中key值是电话号码,value是打电话的个数、发短信个数。
(2)输入合并器把输入的数据分成3个块:第1块:bssap目录下面的2014年6月10日10点到12点;第2块:bssap目录下面的2014年6月10日 9点到10点 ;第3块:bssap目录下面的2014年6月10日 12点到13点 。
(3)输出合并器把2个任务key和value合并成一个大的key和value数组。它的key值是电话号码,value值是打电话的个数、发短信个数。其中任务1的key值索引为0,value值索引为0,输出地址callcounter文件;任务2的key值索引为0,value值索引为0,1,输出地址为callsmcounter。
(4) 智能数据总线分析输入合并器,因为第1块被2个应用同时使用,权重最高,再把第1块的数据分割成多个原子数据块,预先加载到内存中。其他权重低的数据,继续存放到磁盘上。
(5)hadoop的处理流程。在mapper阶段从智能总线读取数据时,当hadoop从智能数据总线读取到2014年6月10日 10点到12点的数据时,直接从内存中读取。因为数据是从内存中直接读取,因此数据的速度比从磁盘读取快很多倍。因为输入的数据都是bssap目录下,hadoop只是需要对记录读取一次就可以了,不需要重复读取2次,然后把读取的数据同时发送给任务1和任务2。在mapper计算结束时,任务1生成对象的key值是电话号码,value值是打电话的个数,把这个对象发送给智能数据总线。任务2把生成对象的key值是电话号码,value值是打电话的个数,发短信的个数,把这个对象发送给智能数据总线。智能总线接收到2条记录后,合并成一个对象,其中它的key值是电话号码,value值是打电话的个数,发短信个数。其中电话号码的key值和打电话次数value可以使用一个,不需要重复发送2条相同的值,大大减少了磁盘的和网络IO的数据量。当reducer阶段时,根据索引值和输出的地址,任务1从key值中提取出电话号码,从value中提取出打电话的次数,写入callcounter文件中;任务2从key值中提取出电话号码,从value中提取出打电话的次数和发短信次数,写入callsmcounter文件中。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
Claims (9)
1.一种基于云计算的合并IO装置,其特征在于,包括:
任务分解器,用于在接收到批量任务时,提取出每个任务的输入信息和输出信息;
输入合并器,以原子数据块为单位,分别将输入信息中相同的原子数据块合并为一个原子数据块;
输出合并器,用于将输出信息及对应任务名分别合并为对应的一个数组,每个任务只保留对应其在不同数组中的序号值;
智能数据总线,用于以原子数据块为单位管理输入和输出信息,并以原子数据块为单位向hadoop传递以输入或输出信息为对应读写内容的读写数据,智能数据总线为与hadoop通信的唯一接口,且当hadoop读取数据时,其每次读取的数据大小均为智能数据总线处理后的输入数据,此输入数据的大小为原子数据块的整数倍,不足以零补充,当hadoop写入数据时,其首先将数据传输至智能数据总线,智能数据总线将写入数据拼装成原子数据块的整数倍大小的输出数据后,再统一写入磁盘。
2.根据权利要求1所述的合并IO装置,其特征在于,所述每个任务的输入信息包括输入数据的地址及输入数据的时间范围,任务分解器以输入信息作为value值,以对应任务的任务名作为key值,将每个任务的key值与value值存入至任务分解器的输入缓存对象中。
3.根据权利要求1所述的合并IO装置,其特征在于,所述每个任务的输出信息包括输出数据地址,任务分解器以输出信息作为value值,以对应任务的任务名作为key值,将每个任务的key值与value值存入至任务分解器的输出缓存对象中。
4.根据权利要求2所述的合并IO装置,其特征在于,所述输入合并器以输入缓存对象中存储的数据作为合并对象,根据每个任务的输入数据的地址及输入数据的时间范围判断是否有相同的原子数据块,如果有,则将其合并为一个原子数据块。
5.根据权利要求3所述的合并IO装置,其特征在于,所述输出合并器以输出缓存对象中的数据作为合并对象,首先对不同任务的key值与value值进行分析合并,之后,分别将key值与value值并成对应一个大的key值数组和value值数组,每个任务只保留对应其在key值数组和value值数组中的序号值。
6.根据权利要求1所述的合并IO装置,其特征在于,所述合并IO装置还包括数据缓存器,当系统内存不能承受过多的原子数据块时,智能数据总线将多余的原子数据块下放给数据缓存器,数据缓存器用于根据原子数据块的下放时间信息构成时间索引树。
7.根据权利要求6所述的合并IO装置,其特征在于,所述时间索引树的树枝分为三级,其中,第1级树枝存放天,第2级树枝存放小时,第3级树枝存放分钟,叶子节点存放原子数据块, 且时间索引树的树枝节点全部存放内存中,叶子节点上的原子数据块经过压缩后,存放至磁盘。
8.根据权利要求6所述的合并IO装置,其特征在于,所述原子数据块具有权重,权重的大小与该原子数据块被不同任务重复使用的次数成正比,当智能数据总线将多余的原子数据块下放给数据缓存器时,首先下放权利最小的原子数据块。
9.根据权利要求1-8任一所述的合并IO装置,其特征在于,所述原子数据块的大小为1024KB。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410640777.4A CN104407811B (zh) | 2014-11-12 | 2014-11-12 | 一种基于云计算的合并io装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410640777.4A CN104407811B (zh) | 2014-11-12 | 2014-11-12 | 一种基于云计算的合并io装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407811A CN104407811A (zh) | 2015-03-11 |
CN104407811B true CN104407811B (zh) | 2017-09-19 |
Family
ID=52645444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410640777.4A Active CN104407811B (zh) | 2014-11-12 | 2014-11-12 | 一种基于云计算的合并io装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407811B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105242591B (zh) * | 2015-08-17 | 2017-12-12 | 合肥宝龙达信息技术有限公司 | 一种输入输出接口合并系统 |
CN111625531B (zh) * | 2019-02-28 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 基于可编程装置的合并装置、数据合并方法及数据库系统 |
CN111324562B (zh) * | 2020-02-16 | 2021-08-06 | 苏州浪潮智能科技有限公司 | 一种ahb总线跨时钟域的系统及工作方法 |
CN117666963B (zh) * | 2023-12-13 | 2024-07-19 | 湖南承希科技有限公司 | 一种cpu云计算平台的数据io加速方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593418A (zh) * | 2013-10-30 | 2014-02-19 | 中国科学院计算技术研究所 | 一种面向大数据的分布式主题发现方法及系统 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行系统 |
WO2014108768A1 (en) * | 2013-01-11 | 2014-07-17 | International Business Machines Corporation | Computing regression models |
-
2014
- 2014-11-12 CN CN201410640777.4A patent/CN104407811B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014108768A1 (en) * | 2013-01-11 | 2014-07-17 | International Business Machines Corporation | Computing regression models |
CN103593418A (zh) * | 2013-10-30 | 2014-02-19 | 中国科学院计算技术研究所 | 一种面向大数据的分布式主题发现方法及系统 |
CN103605576A (zh) * | 2013-11-25 | 2014-02-26 | 华中科技大学 | 一种基于多线程的MapReduce执行系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104407811A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107368259B (zh) | 一种向区块链系统中写入业务数据的方法和装置 | |
CN106777351B (zh) | 基于art树分布式系统图存储计算系统及其方法 | |
CN101957863B (zh) | 数据并行处理方法、装置及系统 | |
TWI735545B (zh) | 一種模型的訓練方法和裝置 | |
CN103647850B (zh) | 一种分布式版本控制系统的数据处理方法、设备及系统 | |
CN104881466B (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN108681569B (zh) | 一种数据自动分析系统及其方法 | |
CN103914399B (zh) | 一种并行计算系统中的磁盘缓存方法及装置 | |
CN102314336B (zh) | 一种数据处理方法和系统 | |
CN104407811B (zh) | 一种基于云计算的合并io装置 | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
CN103853714B (zh) | 一种数据处理方法和装置 | |
CN105900093B (zh) | 一种KeyValue数据库的数据表的更新方法与表数据更新装置 | |
CN104699723A (zh) | 数据交换适配器、异构系统之间数据同步系统和方法 | |
CN106990915A (zh) | 一种基于存储介质类型和加权配额的存储资源管理方法 | |
CN105765578A (zh) | 分布式文件系统中的数据的并行访问 | |
CN107179878A (zh) | 基于应用优化的数据存储的方法和装置 | |
CN106570113B (zh) | 一种海量矢量切片数据云存储方法及系统 | |
CN107832423A (zh) | 一种用于分布式文件系统的文件读写方法 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
CN103595799A (zh) | 一种实现分布式共享数据库的方法 | |
CN106557307A (zh) | 业务数据的处理方法及处理系统 | |
CN107205024A (zh) | 一种云存储系统中数据去重方法及系统 | |
CN109325011A (zh) | 基于区块链的数据存储、处理、分享方法及系统 | |
CN104050193A (zh) | 生成报文的方法和实现该方法的数据处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 519085, No. five, No. 8, Harbour Road, Zhuhai, Guangdong Applicant after: DINGLI CORP., LTD. Address before: 519085, No. five, No. 8, Harbour Road, Zhuhai, Guangdong Applicant before: Dingli Communications Corp., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |