基于Hadoop平台的海量数据高效抽取方法及应用
徐金玲;金璐;李昆明;熊政;仲春林;方超
【摘 要】This article from the essence of data extraction process,discusses the similarities and differences between traditional data extraction process and the data platform,data extraction process, the data platform based on Hadoop as an example,combining the traditional relational database and non relational database(NoSQL)characteristics,proposes a from relational database to efficient data extraction method of data platform,thereby minimizing the occupancy of the data source of the system resources, and the power companies in large data extraction has been widely applied in.%本文从数据抽取过程的本质出发,论述了传统数据抽取过程与大数据平台数据抽取过程的异同,以基于Hadoop的大数据平台为例,结合传统的关系型数据库和非关系型数据库(NoSQL)的特点,提出了一种从关系型数据库到大数据平台的高效数据抽取方法,实现了对数据源系统资源占用的最小化,并在电力公司用电大数据抽取中得到广泛应用。
【期刊名称】《电子测试》
【年(卷),期】2015(000)001
【总页数】3页(P114-116)
【关键词】海量数据;数据抽取;NoSQL;大数据平台
【作 者】徐金玲;金璐;李昆明;熊政;仲春林;方超
【作者单位】江苏省南京供电公司,江苏南京,210008;江苏省南京供电公司,江苏南京,210008;江苏方天电力技术有限公司,江苏南京,211102;江苏方天电力技术有限公司,江苏南京,211102;江苏方天电力技术有限公司,江苏南京,211102;江苏方天电力技术有限公司,江苏南京,211102
【正文语种】中 文
对于大数据的抽取,一般通过使用Sqoop来实现。但是Sqoop组件自身的局限性导致其对于特定的场景并不适用(例如,进行TB级大数据量数据抽取时效率较低,进行增量数据抽取需改变源数据库表结构,对源数据库性能也有较大影响)。因此,本文提出了基于大数据平台
的一种海量数据抽取的高效方法,该方法可以快速、高效、可靠地将海量数据从关系型数据库抽取到大数据平台中。同时,由于通过对数据源日志文件的分析实现对增量数据的抽取,因此该方法在抽取数据时对源数据库的影响非常小。
系统开发环境采用CentOS 6.5操作系统,以Cloudera CDH 5.0为大数据平台框架,并结合Tomcat作为Web Server。集由20台服务器组成,划分为2个机架,每台服务器配置32核CPU、64GB内存和10块磁盘。Cloudera是全球领先的Hadoop服务提供商,其CDH 5.0是最新的Hadoop发行版,提供了高度的稳定性和使用便捷性。数据源采用Oracle数据库,抽取工具采用Golden Gate。
2.1 技术架构
系统以Oracle为数据源,以CDH 5.0为大数据平台框架,结合Tomcat作为Web Server提供Web层的访问服务。在大数据平台中,以MapReduce作为大数据的计算引擎,以HDFS分布式文件系统存储非结构化和半结构化的数据,以HBase分布式数据库存储结构化数据。在Oracle端,采用Golden Gate提取源数据。
(1)利用Golden Gate提取变化数据。Golden Gate可实现秒级的数据捕捉、转换和投递,提供了一种基于日志的结构化数据复制方式,可以从在线日志中准实时地抓取变化的数据,并将变化的数据保存在Trail格式的文件中。其优势在于通过对日志文件的分析实现变化数据的抓取只会占用很小的系统资源,特别是当Oracle中存储的数据量极大、Oracle系统负载很重时基本不会影响Oracle的运行效率。
(2)在大数据平台实现数据的清洗、转换和存储。对于Golden Gate提取出的数据,首先将其以半结构化的数据形式存储在HDFS中,然后根据规则对数据进行清洗和转换、过滤异常数据,并转换成更适合HBase存储的格式。为了加快数据装载到HBase的速度,采用了批量导入(Bulkload)数据的方式,即利用MapReduce并行计算引擎直接生成HBase能够识别的HFile文件,大大缩短了数据入库的时间。
(3)使用Tomcat作为Web Server提供Web层的访问服务。由于Oracle和CDH大数据平台处于两个不同的集中,因此以Web服务作为中间通道可以方便地连接这两个集,例如在集间传递指令、查询并展现集中的数据等。
2.2 抽取流程
对于存储在关系型数据库中的数据,被抽取出来后最终将被存储在NoSQL(以HBase为例)数据库中。我们的思路是,将关系型数据库中的数据首先抽取出来并以中间格式(如Text File)导入到大数据平台后,再将其导入到NoSQL数据库中。当将数据从Oracle以中间格式文件的形式导出后,按照一定的策略将其导入到HBase中。
数据抽取流程可细分为三个部分,分别为利用Golden Gate提取数据、用MapReduce并行计算引擎加快处理速度、将数据装载进HBase。
2.2.1 使用Golden Gate提取数据
利用Golden Gate解析Oracle的日志文件,提取出初始数据及发生变化的增量数据。Golden Gate并没有提供对Hadoop集的直接支持,但是提供了将Trail文件解析为平面文件(Flat File)的功能。而平面文件是可以被Hadoop识别的。Oracle中数据的变化情况一般可以分为三类:插入数据、更新数据和删除数据。因此,对于这三类情况,我们在解析Oracle的变化数据时,将这三类数据分别解析到各自的文件中,例如用后缀I代表插入的数据(Insert),用后缀D代表删除的数据(Delete),用U代表更新的数据(Update)。
2.2.2 利用MapReduce引擎加快处理
由于导出的原始数据往往非常大,如果继续使用传统的串行方法进行数据装载,那么装载过程将会很漫长。因此,我们使用Hadoop大数据平台的MapReduce并行计算框架,来加速装载抽取出的数据。MapReduce计算框架将输入的数据分为多个块(block)存储在多个计算节点上,每个节点只计算本节点上的数据。在每个节点的计算完成之后,将结果输出到MapReduce框架中。MapReduce框架自动汇聚(Aggregate)这些数据并进行排序,最后将最终的结果输出到HDFS中。在这一过程中,多个节点的计算过程是同时进行的,因此整个计算与串行计算相比,速度会大大提高,且计算的时间将与计算节点的数量成反比。
2.2.3 使用Bulkload装载数据
NoSQL数据库可以存储相当大的数据,但是如果采用单客户端来加载数据,则吞吐量会受到单机的带宽及磁盘等硬件的限制。此外,NoSQL数据库往往采取复杂的机制来保证数据的健壮性及一致性,数据的写入会经历一个复杂而耗时的过程。例如,HBase在写入数据时,会首先将数据写入预写日志文件(WAL,Write-Ahead Log),然后将数据写入到缓存区域(MemStore)中,等到缓存区域满了之后才将其中的数据一次性地写入到磁盘里。因此,为了加快数据导入的速度,我们一方面采用多节点并行写入,另一方面直接生成HBase数据的存储格式文件,即采取批量导入(Bulkload)的方法来装载数据。
基于上述的架构思想与流程,开发并实现了一套大数据平台数据抽取系统,用于对江苏全省用户用电数据的抽取。该系统以Cloudera CDH为大数据平台的基础支撑软件,以Oracle为数据源,实现了每日自动将Oracle数据库中的全省用户用电的数据抽取并存储到大数据平台的HBase中。该系统的集由20个节点构成,划分为2个机架,每个节点配置32核CPU、64GB内存和10块磁盘。开发环境基于Eclipse,程序代码为Java,上层数据的查询与展现采用了Restful API,可以在浏览器中方便地发出查询数据的指令、实时地获取查询结果并展现在浏览器中。
在系统实现的过程中,采用了Golden Gate基于日志文件提取数据的方式,大大减少了数据抽取本身对数据源系统带来的额外负担,减少了数据抽取对原系统的影响。同时,针对HBase分布式文件系统的特点,采取了一些优化措施,如科学设计数据的Rowkey、合理规划Region的分布、避免写入WAL、规避数据热点等,充分地体现了分布式数据库在存储容量、响应速度和数据可靠性上的优势,为电力公司用电大数据提供了坚实的技术保障。
大数据平台上的数据抽取面临着数据量大、数据格式异构程度大、需要分布存储等难点和挑战。针对这些难点,提出了解决大数据平台数据抽取的新方法,并开发了一套基于Cloudera
CDH的系统,实现了大数据平台海量用电数据的高效抽取。该系统采用Golden Gate从数据源提取数据,大大减少了抽取数据对数据源系统的影响,同时采用Bulkload方式导入数据,提高了装载海量数据的速度。作为电力行业的一个典型应用,该系统较好地体现了利用大数据平台抽取用电数据的优势,为在大数据平台上展开针对电力行业大数据的进一步研究提供了技术基础。
徐金玲(1982-),女,江苏南京人,硕士,工程师,长期从事电网营销智能化业务管理工作。
金璐(1985-),女,江苏泰兴人,本科,助理工程师,长期从事电网营销智能化业务管理工作。
李昆明(1984-),男,黑龙江安达人,本科,助理工程师,从事电力软件开发与设计工作。hbase属于什么数据库
熊政(1976-),男,江西南昌人,本科,工程师,长期从事电力软件开发管理工作。
方超(1985-),男,江苏句容人,大专,助理工程师,从事电力软件开发与设计工作。
仲春林(1981-),男,江苏兴化人,本科,工程师,从事电力软件开发与设计工作。
【相关文献】
[1] 俞立平.大数据与大数据经济学[J].中国软科学,2013,(7):177-183.
[2] 谷海彤.地区电力调度数据仓库建模与数据处理[J].电力自动化设备,2006,26(10):49-53,106.