您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 在Hadoop基础上的数据处理系统的构建研究
在Hadoop基础上的数据处理系统的构建研究第1章绪论1.1研究背景和意义随着科技的进步以及互联网技术的不断提高,越来越多的智能设备被人们所使用。而如今物联网、云计算等新兴技术也开始逐步影响着人们的生活,随之而来的就是这些数据载体所导致的数据量增长的问题,比如Facebook每天所要处理的数据量就在500TB左右,如何处理这些海量数据成为了每个公司发展的瓶颈。据统计,截至到2015年全球的数据量将达到8.5ZB,而且将以每18个月翻一番的趋势增长,其中以电子商务交易数据、社交网络数据和移动终端数据为代表的三大主导非结构化数据将占全球数据总量的90%[1]。无疑,大数据的时代已经到来。本文要处理的数据是温度传感器采集的数据,因此在短时间内就会产生大量的数据,而且这些数据是不断增长的,如果采用传统的数据存储模式即使用处理能力很强的大型机和关系型数据库,即将全部数据存储到具有很大容量的磁盘上。虽然近年来磁盘的存储容量不断增加,但是其访问速度却未能与时俱进,比如读取具有1TB数据的磁盘,其速度传输速度为100MB/s,读取完所有数据仍需要1个小时[2]。所以面对这些不断增长的温度数据,即使再大容量的机器也不能从根本上解决大数据的存储问题;而关系型数据库的缺点是只能存储结构化的数据、没有较好的弹性和容错性等,所以传统的处理模式已经不能满足要求了。而云计算的出现给这些问题带来了生机。云计算是并行计算、分布式计算、虚拟化等技术的结合[3]。目前比较流行的云平台有Abiquo公司开发的AbiCloud,它是一款用于公司的开源的云计算平台,使公司能够以快速、简单和可扩展的方式创建和管理大型、复杂的IT基础设施(包括虚拟服务器、网络、应用、存储设备等)[3,4];Enomalism弹性计算平台,它提供了一个功能类似于EC2的云计算框架;Hadoop,是Google云计算平台的一个开源实现,主要包括HDFS文件系统和MapReduce编程模型。本文所设计的数据处理系统采用Hadoop框架,利用集群模式来作为本系统所依赖的底层环境,并且配合HBase共同构建私有云。HBase作为数据库存储采集到的数据,并在此系统上进行MapReduce程序的编写[5,6];使用JavaWeb技术来编写网页管理界面,使用户能够直接通过浏览器来对数据进行统一的管理操作。本文设计的系统能够很好的处理温度数据,同时对于其他大数据场合同样实用,具有很好的实际应用价值。..................................1.2国内外研究现状⑴大数据的发展“大数据”是随着Apache的开源项目Nutch发展而来的。当时Nutch项目主要是用来做网页爬虫和优化搜索引擎的,所以会产生大量的数据集,而大数据就是这些数据集的简称。后来Google在2004年发表了两篇论文:MapReduce和GoogleFileSystem(GFS),从此大数据就不仅用来形容数据的容量了,同时还包括了海量数据的处理速度。早在1980年,著名未来学家阿尔文·托夫勒发表了《第三次浪潮》一书,大数据被第一次提了出来,同时他还将大数据热情地赞颂为“第三次浪潮的华彩乐章”[7]。从2009年开始,“大数据”才成为互联网信息技术行业的流行词汇。美国互联网数据中心指出,互联网上的数据每年将增长50%,每两年便翻一番,而目前世界上90%以上的数据是最近几年才产生的[7]。从2009年到现在,大数据被越来越多的公司重视,并且开始着手大数据的分析和处理方案的研究,并结合公司自身数据源的特点,开发出合适的数据处理方案。⑵Hadoop的发展2004年,Apache的顶级项目Hadoop由DougCutting等人共同开发出来,是为了解决在Lucene和Nutch等开源项目中遇到的数据处理速度等问题,是Google发表的GFS和MapReduce思想的一种开源实现[8]。2008年2月,雅虎宣布搭建了当时世界上最大规模的Hadoop集群系统,Yahoo!SerchWebmap,并用它来进行雅虎日常的广告统计、日志分析和科研实验;亚马逊的搜索网站A9.com使用Hadoop来生成商品搜索的索引[9];全球最大的网上音乐社区Last.fm在Hadoop上运行着数百种执行各种操作的日常作业,例如日志分析、及时处理和图表生成等;著名社交网站Facebook用320多台机器组成的Hadoop集群构建了整个网站的数据仓库,进行网站的日志分析和数据挖掘等工作[9]。2008年之后,越来越多的国内企业也开始对Hadoop进行研究,其中包括淘宝、一淘、百度、腾讯、中国移动等等。淘宝是国内最先使用Hadoop的公司之一,它的Hadoop系统用于存储并处理海量的电子商务交易数据;百度广泛使用了Hadoop并对其进行调整和改进,主要用于搜索日志的分析和网页数据的挖掘;中国移动研究院提出了基于Hadoop的“大云”(BigCloud)系统,并用它来完成数据挖掘和用户行为分析等工作[10]。不只企业界对Hadoop青睐有加,学术界里很多科研院所也投入到Hadoop的应用和研究中,其中有中科院、清华大学、浙江大学和华中科技大学等。2011年被称为是Hadoop的商业化元年,随着Hadoop的应用日渐广泛,国内越来越多的商业公司加入到这个领域,提供商业化的工具和服务,为Hadoop在企业内部的应用注入了一剂强心剂。如今Hadoop已经能够处理非常大的数据量了,并且随着互联网的高速发展,新的Hadoop业务模式将不断被开发出来,Hadoop的应用也会由互联网领域向物联网、电子金融、医疗卫生、政府办公等领域拓展。相信在不久的将来,Hadoop将会在越来越多的领域中扮演中坚力量,为我们提供更加优质快捷的服务。...............................第2章Hadoop和HBase的理论分析2.1Hadoop架构2.1.1Hadoop概述在2005年,Apache软件基金会研究出一套用于抓取网页内容和快速检索的软件系统,但是当数据量不断增加并且达到亿数量级的时候,这个系统运行的效率就会十分的低下,他们必须寻找另外的解决办法。在这之后Google发表了两篇论文GoogleFileSystem(GFS)和MapReduce:SimplifiedDataprocessingonLargeClusters。于是在2004年,他们借鉴GFS的架构实现思想成功开发出了此项目Nutch的分布式文件系统NutchDistributedFileSystem(NDFS)和MapReduce。开发者们后来就把这两者独立出来形成一个子项目,它就是Hadoop[12-14]。Hadoop集群不需要昂贵的服务器,它建立在普通的PC机上就可以,成本比较低,而且它还具有高可靠性和高扩展性等诸多优点,所以受到了很多公司的青睐。2008年,雅虎在由900多节点组成的集群上完成了对1TB数据的排序工作,耗费的时间仅仅为209秒[15],开创了Hadoop应用的新局面。在这之后各大网络公司纷纷开始使用Hadoop来处理自己公司内部大数据带来的问题。Hadoop是一个能够对大数据进行分布式处理的软件框架,是以一种可靠、高效、可伸缩的方式进行处理的[16]。它不仅具有处理数据速度快的特点,还有以下几个优点:⑴高可靠性。Hadoop是采用位级别的方式来进行数据的存储和处理的,因此速度比较快;⑵高扩展性。Hadoop采用集群模式来进行分布式计算,如果集群的规模不再能够满足数据的增长,只需要简单的增加节点扩大集群即可,非常的方便。⑶高效性。分配到每个节点上的数据都能够根据需要迁移到其他节点上,保证了集群间的负载均衡,同时还为高效的处理速度提供了依据。⑷高容错性。为了避免数据的丢失,Hadoop提供了一种副本存放的策略,即数据有多个副本,一旦某个节点上的数据丢失,可以很快的从其他节点上恢复过来,保证了系统的安全性。除了Hadoop之外,围绕Hadoop的子项目也已经有很多,比如Avro、Hive、ZooKeeper[17]等等,它们都成为了项目中不可或缺的工具,它们的结构如图2-1所示:.......................................2.2HBase数据库分析2.2.1HBase概述HBase同样也是Apache模仿谷歌Bigtable实现的一个数据库系统,它具有强一致性、高性能随机读写等优势。HBase是通过主键和时间戳来检索数据的,主要用来存储非结构化和半结构化的松散数据[25]。2.2.2HBase数据模型HBase的表是一个个按列存储的有序的映射表,它的检索是通过RowKeycolumn和timestamp来完成的。图2-6是HBase的逻辑模型视图:从图中可以看出,key1,key2,key3就是各自记录的唯一一个用于索引的主键;column-family1,column-family2是两个列族,每个列族下又包括两列,如column-family1下有两列,分别是column1和column2;t1:abc,t2:bcd是由key1、column-family1还有column1唯一确定的一个单元cell。这个cell中有两个数据abc和bcd。但是它们的timestamp不一样,即它们是在t1和t2两个不同的时刻存放到cell中的。下面来具体解释下这些名词的含义:⑴RowKey。用来检索数据的主键;⑵列族column-family。HBase数据库采用列族的方式来统一管理不同的列,一个列族下的所有列属于一个列族。例如courses:history,courses:math两个列,它们都属于courses这个列族;⑶单元Cell。是由{rowkey,column(=family+label),version}唯一确定的一个存储单元。跟关系型数据库不同的是,cell中的数据存储格式是二进制字节码的形式,因此HBase中可以存储任意类型的数据。⑷时间戳timestamp。时间戳用来区分cell中不同版本的数据,默认情况下,HBase会把最新的数据放到前面。2.2.3HBase系统架构从图2-7中可以看出,HBase的运行是由Zookeeper、HMaster和HRegionServer等协同完成的,它们扮演着不同的角色,完成不同的功能,它的底层是使用HDFS来进行数据存储的。.......................................第3章Hadoop集群调度策略的改进.....................................173.1遗传算法..................................173.1.1概述...................................173.1.2遗传操作..............................................183.1.3算法控制参数......................................183.1.4遗传算法流程图...................................193.2WLGA任务调度算法设计......................................193.2.1染色体编码规则....................................193.2.2节点工作负载...................................203.2.3生成初始种群.........................................213.2.4建立适应度函数.....................................213.2.5交叉和变异..........................................213.3实验仿真...........................
本文标题:在Hadoop基础上的数据处理系统的构建研究
链接地址:https://www.777doc.com/doc-2600816 .html