基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx

上传人:wj 文档编号:3658148 上传时间:2023-05-02 格式:DOCX 页数:60 大小:407.08KB
下载 相关 举报
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第1页
第1页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第2页
第2页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第3页
第3页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第4页
第4页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第5页
第5页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第6页
第6页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第7页
第7页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第8页
第8页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第9页
第9页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第10页
第10页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第11页
第11页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第12页
第12页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第13页
第13页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第14页
第14页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第15页
第15页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第16页
第16页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第17页
第17页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第18页
第18页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第19页
第19页 / 共60页
基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx_第20页
第20页 / 共60页
亲,该文档总共60页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx

《基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx》由会员分享,可在线阅读,更多相关《基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx(60页珍藏版)》请在冰点文库上搜索。

基于 hadoop海量数据分析系统设计与实现毕业论文Word下载.docx

实践表明,采用本文所设计的系统后,提高了数据分析的效率,改变了人工计算海量数据的情况,实现了数据分析统计的高效性和集中性。

关键词:

HadoopMapReduce数据分析

Abstract

WiththecontinuousdevelopmentoftheInternet,businessofalargedomesticcompanyisgoingtobemoreandmorecomplex.Analysisofcoredatabecomesakeypointofthedevelopmentofthecompany,buttheinternalcorerawdatafilesarehuge.

Theygettheconclusionbymanualanalysis.Therefore,analysisandprocessingmassivedatabecomeproblemstobesolved.

Inthispaper,weresearchthehomeandabroadstatusformassivedataprocessing.TheMapReducedistributedprogrammingideaiselaborated.WeintroducetechnologiesaboutHadoopandtheHDFSfilesystem,analysisoftheneedsofenterprises.Spirng-MvcandHibernatewebdevelopmentframeworkareappliedtohierarchicaldesigninginthesystem.Thesystemisdividedintofivelayers:

viewlayer,businesslogiclayer,dataobjectlayer,underlyingdatalayerandoriginalresourcelayer.Thenweexpandthedesignandimplementationofthesystemstructure.Hadoopcalculationmodule,datastoragemoduleandbusinesssystemmodulearedesignedwithactualbusiness.Finally,eachmoduleistested,Massdataanalysissystemisfinished.

TheworkinthispapermakesuseofthedevelopmentofasystemofalargeInternetcompany.Practiceshowsthatthesystemdesignedinthispaperimprovestheefficiencyofdataanalysis,itchangesthestatusofartificiallycalculatingthemassdataandmakesthestatisticaldataanalysisefficientandcentralized.

Keyword:

Hadoop MapReduce DataAnalysis

目录

第一章 绪论 1

1.1论文背景及意义 1

1.2国内外研究现状 2

1.3本文研究内容 3

1.4章节安排 3

第二章 基于Hadoop的分布式技术 5

2.1分布式计算的思想 5

2.2分布式计算的技术 7

2.2.1Hadoop原理 7

2.2.2Hadoop应用 8

2.3本章小结 9

第三章 基于Hadoop的海量数据分析系统的目标应用 11

3.1目标应用的需求分析 11

3.2目标应用的设计架构 12

3.2.1目标应用的总体架构 12

3.2.2目标应用的流程分析 17

3.3本章小结 18

第四章 基于Hadoop的海量数据分析系统的设计实现 21

4.1总体设计 21

4.2数据结构设计 23

4.3模块详细设计 29

4.3.1分布式Hadoop计算模块 29

4.3.2数据结果存储模块 32

4.3.3业务系统逻辑模块 33

4.4本章小结 39

第五章 基于Hadoop的海量数据系统的部署和测试 41

5.1项目部署 41

5.1.1文件命名规范 41

5.1.2代码工程文件部署 42

5.2系统测试 43

5.2.1分布式Hadoop计算模块的测试 43

5.2.2核心数据文件存储模块测试 43

5.2.3业务逻辑系统模块测试 43

5.3结果分析 45

5.4本章小结 46

第六章 结束语 47

6.1本文工作 47

6.2存在问题 47

致谢 49

参考文献 51

第一章绪论

3

本章首先阐述课题的背景和研究意义,接着介绍分布式技术的国内外研究现状,最后给出本文研究内容及章节安排。

1.1论文背景及意义

随着计算机技术以及互联网的快速发展,特别是网络的普及,金融、通信等大众行业对信息的需求越来越高,亟待处理的数据量也越来越大。

与此同时,人们对复杂查询操作能力的需求以及高性能联机事务处理能力也在不断提高。

因此,如何存储计算海量数据成为当今的研究热点。

当前单一节点服务器的计算能力已经达到了瓶颈,而现代大型企业的数据的异构性、复杂性和关联性非常强,数据量非常大,这样对服务器存储资源、计算资源都提出了较高的要求,因此,利用云计算的分布式技术获取网络中强大的计算存储资源,将消耗大量计算资源的复杂计算通过网络分布到多节点上进行计算,是当前一种高效的解决方案。

国内大型互联网公司,随着它的业务一步一步增大拓宽,所采用的系统也越来越多,相应的,开发和维护这些系统的团队也就越来越复杂,甚至出现了几个团队共同维护一个系统的局面。

由于公司内部的许多核心数据是必须要产生并且加以分析的,而众多的公司系统则对产生和分析数据造成了相当大的困难,一方面,大规模的数据需要强大的运算能力才能够加以分析,传统的单机处理已经不能够满足当前业务发展的需求,另一方面,众多的业务系统,使得众多数据的处理和分析更加困难,公司内部存在着手工分析分布式系统数据结果的现状不能够得到改善,工作效率严重受到影响。

因此,企业迫切的需要一个可以大规模集中处理和分析展现数据的系统模式,统筹规划庞大的数据,实现高效处理。

大规模数据的分析和计算,首要的问题就是庞大的计算量,分布式计算的通用的解决方案,用多个机器承载计算任务,优化任务的运算效率。

但是分布式计算任务的实现中存在着一些问题,比如输入文件的优化处理和分布式任务的运行管理。

所以,一种优化且良好封装的分布式框架,由底层封装文件调度、并行计算、容错处理等功能,用户进行分布式计算逻辑的设计,这样就可以优化传统的分布式任务流程。

由谷歌公司研发的Map/Reduce编程模型应运而生。

同时,Hadoop分布式框架实现了这个模型,有力的支持了这种新兴的分布式编程思想。

另一方面,随着Web技术的飞速发展,基于Web的数据分析和管理系统能够集中统一的分析数据,并且在互联网上通过浏览器进行数据分析结果

的良好展现。

这样就解决了人工分析大规模数据结果的弊端,为高效统一的数据分析展现提供了很好的解决途径。

基于Hadoop的海量数据分析系统的意义在于:

1.避免重复性的工作。

Web数据分析系统可以通过规范可复用的流程对数据进行分析展现,它可以避免人工分析数据结果的弊端,从而节省人力物力、提高企业工作效率。

2提高大规模数据的处理能力,基于Hadoop的数据分析和计算可以应对海量数据级别的任务,通过快速高效的运算能力,使得企业迅速得到数据分析的结果,为今后的发展提供了保障。

1.2国内外研究现状

首先介绍一下目前流行的分布式技术,MapReduce编程模型。

它的思想来源于一种函数式编程语言,名字叫做Lisp,这种编程语言由谷歌公司提出并首先应用于计算机集群。

Hadoop框架的核心思想就是Map/Reduce。

谷歌研发出了GFS等硬件模型来承载MapReduce模型。

Map/Reduce是一个用于海量数据运算的编程模型,于此同时它也是一种高效的任务调度模型[1]。

在2007年,谷歌对这个模型进行了更加深入的研发。

谷歌公司以这种分布式编程规范作为基础,在互联网公司中渐渐地居于主导地位。

Hadoop是在DougCutting等人带领下进行设计研发的,同时他被Apache基金会认可,并成为了其旗下的一个著名的开源项目,它基于Lucene和Nutch等早前开源框架,基本上实现了谷歌自己的文件系统和最新的分布式编程思想。

2004年,他们完成了Hadoop分布式文件系统并发布了最早的版本;

2005年,他们进一步研发不断增大Hadoop集群的数量,最终使得Hadoop集群的稳定数量达到了20;

2006年2月ApacheHadoop项目开始资助这种分布式开发平台的研发。

目前,在Hadoop引起了企业界和学术界的深入重视和广泛的研究与应用。

2008年2月,yahoo公司研发出了世界上最大规模的分布式集群—Yahoo!

SearchWebmap,这个集群对雅虎公司的广告收益和科研进程起到了非常重要的推动作用;

Amazon的搜索门户A的网站中创建商品的数据索引就是基于雅虎自身的分布式集群完成的[2];

许多著名的SNS网站,例如facebook都开始逐渐使用Hadoop大型集群进行分布式的数据挖掘、数据处理、日志分析和文件调度,推动了海量数据处理在全世界的应用。

UCBerkeley的MateiZaharia等人改进了基于Hadoop的推测式执行技术,并发表了ImprovingMapReducePerformanceinHeterogeneousEnvironment[3],其他很多世界高校也对Hadoop进行应用和研究;

TysonCondie等人完善了MapReduce

整体架构,对它的整体进行了改进,他们在学术上推动了Hadoop的不断完善。

2008年之后,我国应用和研究Hadoop的企业也越来越多,包括淘宝、百度、金山等。

淘宝是国内最早一批引入Hadoop分布式计算体系的公司之一[4];

百度在开发了自己公司内部的Hadoop应用系统。

总之,互联网企业是Hadoop在国内的主要使用力量。

同样的,很多科研院所也投入到Hadoop的应用和研究中,包括中科院、清华大学、浙江大学和华中科技大学等。

其次,本文的另一个要点是基于Web的数据分析系统,目前国内的大部分互联网公司和绝大多数开源项目都以J2EE为解决方案,从最初的struts1.0,spring

和hibernate组成的ssh系统架构,再到后来的ibatis和spring-mvc,不断有新兴的

web开发技术涌现出来,国内有很多公司,例如淘宝,也借鉴了国外的这些优秀的框架,开发了自己企业使用的J2EE技术。

这也使得现在的J2EE开发技术愈发成熟,增强了项目的健壮性和可维护性。

1.3本文研究内容

分布式技术在国内国外都有着非常重要的地位,本文根据国内外相关领域的研究进展,结合自己对分布式技术的理解,以目前流行的J2EE开发技术作为技术支撑,构建出海量数据分析的web系统。

本文从分析具体业务逻辑开始着手,抽象数据流程,根据业务的特性建立关系模型,并且根据数据的特点设计相应的存储方式,最终实现海量数据的计算、分析、处理和展现。

基于Hadoop的海量数据分析处理系统主要由分布式计算模块和Web数据分析模块组成。

根据海量数据分析处理系统的构成,本文的主要研究内容包括两部分:

1.海量数据分析Web业务系统的分析和设计;

2.研究用于企业内部的海量数据分析处理的Hadoop计算模块的设计和应用。

1.4章节安排

本文共分为六个章节,安排如下:

第一章:

绪论。

阐述课题的背景和研究意义,介绍海量数据分析系统的国内外研究现状,概括本文主要研究内容及章节安排。

第二章:

基于Hadoop的分布式技术。

介绍目前业界流行的分布式编程思想,介绍Hadoop的原理和应用,并从海量数据分析系统出发,对该系统中的技术应

用进行分析。

第三章:

基于Web技术的海量数据平台的目标应用。

以海量数据分析的需求构建Web分析展现系统。

对目标应用的背景、架构进行详细的分析,确定系统的数据流程和基础架构。

第四章:

基于Hadoop的海量数据分析系统的设计和实现。

给出该系统的总体设计方案,并对各组成部分及功能进行详细分析和设计,包括数据模型、中间文件及系统架构。

并从业务角度分析设计系统,以达到规范、健壮和复用易维护的目标。

第五章:

基于Hadoop的海量数据分析系统的部署和测试。

根据第四章给出的详细系统设计实现,详述系统的测试过程,,并对测试结果进行分析。

第六章:

结束语。

对本文的研究工作进行全面总结,分析其中的不足之处,讨论后续需要进一步改进的工作。

第二章基于Hadoop的分布式技术

9

2.1分布式计算的思想

在过去的互联网高速发展的几年里,很多程序员为了处理海量的原始数据,已经设计并且实现了数以千计的、专用的分布式计算方法。

这些分布式计算方法用来处理海量的原始数据,这些分布式的方法被应用到许多领域,例如,网络

spider程序、日志文献的抓取等等。

通过分布式计算的方法,得到网络上的大量数据信息和日志文献中的有效数据。

这样的大数据处理在想象中是非常容易做到的,但是由于自身的输入文件过于庞大,所以分布式海量数据的计算时间成为了关键,只有将这些计算分布在成百上千的主机上。

如何处理并行计算、分发数据、怎样处理错误?

所有这些问题综合在一起,需要大量的代码处理,因此也使得原本简单的运算变得难以处理。

为了解决上述复杂的问题,本文设计实现了一个新的分布式模型,基于分布式思想,只要相应的计算逻辑即可,而不必关心分布式计算过程中的容错和负载均衡等复杂的细节,这些由一个统一的库函数解决。

设计这个抽象模型的灵感来

自Lisp和许多其他函数式语言的Map和Reduce的原语。

意识到大多数的运算都包含这样的操作:

在输入数据的“逻辑”记录上应用Map操作得出一个中间key/valuepair集合,然后在所有具有相同key值的value值上应用Reduce操作,从而达到合并中间的数据,得到一个想要的结果的目的。

使用MapReduce模型,再结合用户实现的Map和Reduce函数,就可以非常容易的实现大规模并行化计算;

通过MapReduce模型自带的“再次执行”(re-execution)功能,也提供了初级的容灾实现方案。

这个工作(实现一个MapReduce框架模型)的主要将自动化分布式计算通过接口的方式表达,并且利用MapReduce模型接口实现在计算机集群上的高效的分布式运算

MapReduce编程模型的原理是:

利用一个输入key/valuepair集合来产生一个输出的key/valuepair集合。

MapReduce库的用户用两个函数表达这个计算:

Map和Reduce[5]。

首先通过一个Map函数接受任意输入的key/valuepair值,然后产生一个中

间key/valuepair值的集合。

MapReduce这个Map中的相同中间key值的value值集合在一起后进行排序和combine的操作,最后传递给后面的reduce函数。

分布式计算过程中的Reduce函数以一个key-value对作为输入的参数。

Reduce

函数合并这些value值,通过一定的方式对这些生成的结果进行排序,输出一个

比输入规模小的value集合。

每次Reduce函数的输出结果是0或1个value。

一般只用迭代器把产生的value值发送给后续的reduce作为输入,解决了无法将大量的value值的集合全部放入内存中的问题[6]。

MapReduce模式的主要思想是将自动分割要执行的问题(例如程序)拆解成

map(映射)和reduce(化简)的方式,流程图如图2.1所示。

输入 Map任务 Reduce任务 输出

数据块1

Map()

Reduce()

结果

数据块2

数据块3

数据块4

数据块5

数据块6

图2.1MapReduce的处理流程

数据被分割之后通过Map函数将这些字文件发送到各个计算机集群的子节点上进行运算,在通过Reduce函数的程序将结果汇整,从而得到想要的最终输出结果。

MapReduce借鉴了函数式编程的思想,其软件实现是指定一个Map函数,把键值对(key/value)映射成新的键值对(key/value),形成一系列中间结果形式的

key/value对,然后把它们传给Reduce(规约)函数[7],把具有相同中间形式key的

value合并在一起。

Map和Reduce的相互依存的。

函数描述如表2.1所示。

表2.1Map函数和Reduce函数的基本描述

函数

输入

输出

说明

Map

<

k1,v1>

List(<

k2,v2>

1.将小数据集进一步解析成一批

key,value>

对,输入Map函数中进行处理。

2.每一个输入的<

k1,v1>

会输出一批

是计算的中间结果。

k2,List(v2)>

k3,v3>

输入的中间结果<

中的

List(v2)表示是一批属于同一个k2

的value

MapReduce目标是解决分布式海量数据运算的高效性,因此在设计之初就考虑了数据的局部性原理,实现了分而治之的处理思想。

MapReduce集群由大量的普通计算机构成。

在处理之前,将数据集发送到集群的子节点[8]。

处理时,每个

节点就近读取本地存储的数据处理(map),将处理后的数据进行合并(combine)、排序(shuffleandsort)后再分发(至reduce节点),避免了大量数据的传输,提高了处理效率。

通过良好的复制策略维护系统的容错性,保证数据传输复制过程

中的安全。

以上就是海量数据分布式计算的基本思想MapReduce的介绍。

2.2分布式计算的技术

2.2.1Hadoop原理

前一章已经提到过,Hadoop是一个实现了MapReduce计算模型的开源分布式并行编程框架,程序员可以利用这个框架编写程序,实现对海量数据的计算和处理。

此外,Hadoop还提供了分布式文件系统(HDFS)及分布式数据库(HBase)用来管理节点上的分布式数据。

利用Hadoop框架及MapReduce编程思想来实现

海量数据的计算和存储,并且将HDFS分布式文件系统和HBase分布式数据库很好的融入到分布式计算系统中,从而实现海量数据处理的并行性和高效性,并且得以实现很好的处理大规模数据的能力。

HadoopHDFS是GoogleGFS(GoogleFileSystem)的开源实现,主要应用

场景是作为并行计算环境(MapReduce)的基础组件,同时也是BigTable(如HBase、

HyperTable)的底层分布式文件系统。

HDFS集群是由单独的Namenode联合若干的Datanode组成。

HDFS采用master/slave架构。

Namenode维护整个系统的文件系统。

Datanode每个系统集群单独配置,处理节点上的系统存储单元[9]。

在内部,

一个文件以block进行划分,每个Datanode集合管理若干个block。

如图2.2所示。

DataNode

客户端

数据请求

块信息

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2