


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录 HYPERLINK l _TOC_250030 目录1 HYPERLINK l _TOC_250029 引言2 HYPERLINK l _TOC_250028 背景与目的2 HYPERLINK l _TOC_250027 专业术语及说明2 HYPERLINK l _TOC_250026 参考资料2 HYPERLINK l _TOC_250025 设计概述3 HYPERLINK l _TOC_250024 任务及目标3 HYPERLINK l _TOC_250023 需求概述3 HYPERLINK l _TOC_250022 运行环境概述3 HYPERLINK l _TOC_250021
2、系统详细需求分析4 HYPERLINK l _TOC_250020 详细需求分析4 HYPERLINK l _TOC_250019 总体设计方案4 HYPERLINK l _TOC_250018 系统总体结构4 HYPERLINK l _TOC_250017 系统模块划分5 HYPERLINK l _TOC_250016 系统详细设计5 HYPERLINK l _TOC_250015 系统结构设计5系统功能模块详细设计6 HYPERLINK l _TOC_250014 信息编码设计6 HYPERLINK l _TOC_250013 代码结构设计6 HYPERLINK l _TOC_250012
3、 代码命名规则7 HYPERLINK l _TOC_250011 维护设计7 HYPERLINK l _TOC_250010 系统的可靠性和安全性7 HYPERLINK l _TOC_250009 系统及用户维护设计7 HYPERLINK l _TOC_250008 系统扩充设计7 HYPERLINK l _TOC_250007 系统配置7 HYPERLINK l _TOC_250006 硬件配置7 HYPERLINK l _TOC_250005 软件配置7 HYPERLINK l _TOC_250004 关键技术7 HYPERLINK l _TOC_250003 关键技术的一般说明7 HYP
4、ERLINK l _TOC_250002 关键技术的实现方案8 HYPERLINK l _TOC_250001 测试8 HYPERLINK l _TOC_250000 测试方案8引言背景与目的当下互联网和计算机技术越来越多的被各行各业利用,于是产生了海量的数据。进入2012 海量数据。生着大量的数据,而对这些数据的分析和利用有着巨大的市场前景和意义。专业术语及说明Hadoop :一种分布式基础架构,由 Apache Hadoop 实现了一个Hadoop Distributed File Syste,简称HDFHDFS 硬件上。而且它提供高传输率throughput)来访问应用程序的数据,适合那
5、些有着超大数据集data set)HDFS 放宽了(relax)POSIX 的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。Hbase:是一个分布式的、面向列的开源数据库。 (实现是指定一个Map 函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce函数,用来保证所有的映射的键值对中的每一个共享相同的键组。参考资料【1】相海泉. 大数据时代J. 中国信息界, 2013 (5).【2】李成华, 张新访, 金海, 等. MapReduce: 新型的分布式并行计算编程模型J. 计算机工程与科学, 2011, 33(003):
6、129-135.【3】谢桂兰, 罗省贤. 基于 HadoopMapReduce 模型的应用研究 JJ. 微型机与应用, 2010, 25(3): 4-7.【4】陈勇. 基于 Hadoop 平台的通信数据分布式查询算法的设计与实现 DD. 北京: 北京交通大学, 2009.【5】Taylor R C. An overview of the Hadoop/MapReduce/HBase framework and its current applications in bioinformaticsJ. BMC bioinformatics, 2010, 11(Suppl 12): S1.设计概述从
7、HBASE 中取数据(driver 类)通过MapReduce 理(Mapper 类)根据应用层的需要,对处理过的数据再次进行处理 类以及附加类:简单的数学基本函数、统计、概率等,并且返回给客户端(预留接口)任务及目标数据合成:1、PI 的常用函数:最大值、平均值等2、专业函数(与PI 服务器类似的内置函数数据订单:1、基本的数据挖掘、数理统计函数功能(如统计/概率)需求概述因为电力行业在实际生产和应用的过程中会产生大量的数据PI 运行环境概述20 个计算节点的Hadoop (可横向扩展2*4 内存,612T 存储。详细设计方法和工具Map 函数从Hbase 户。如下图编程工具:eclipse
8、 编程语言:java系统详细需求分析详细需求分析A 功能需求分析:批量查询功能,数据处理功能(等)B 性能需求分析:实时性要求较高,对于数据的处理计算Mapreduce 完全能够胜任C 资源需求分析:多台普通X86 服务器,成本较低。D 系统运行环境及限制条件分析:系统需要在Linux hadoop 框架E 现有软、硬件资源分析:如今华电现有 X86 服务器 4 台,可以利用虚拟技术对 hadoop集群进行布置。软件方面目前hadoop 框架已搭建成功,可以直接使用。总体设计方案系统总体结构如下图为hadoop、hbase、hadoop mapreduce 的层次结构MapReduce 分为三
9、个类:Driver 类、Mapper 类、Reducer 类输入的参数类型是 String类(query内容,解析之后,通过 Map Function 按照检索条件最后输出Map Function 然后在Reducer 类里通过调用附加类的函数进行运算,最后输出结果Lis(Valu。如下图Map FunctionArrayListReduce FunctionArrayList(SearchResultsw)。用户系统模块划分Map类:Map 写入检索条件,遍历数据库HBASE,得到需要的数据(可以提供的API 间检索,按点名检索等。需要参数为Hashtable 进过 Map 后输出数据为Ar
10、rayListKey:SessionID,Value:Search 。Reduce类:Reduce 函数得到Map 的返回结果即ArrayList 类型的数据之后经过运算处理返回给User 的数据为ArrayList(SearchResultsw)。基础类:封装的函数:加减乘除等基本运算、统计count、计算概率、解析字符串、专业函数等。Driver类:使用JobConf 和JobClient 提交作业;与Map 类和Reduce 类关联。系统详细设计系统结构设计系统分为两个 java 包:一个是批量查询的包(querydatatabl,一个是批量计算的包datamat。在 querydata
11、table 包内,有四个类:DriverQuery 类、QueryMap 类、StringAnalytical 类、TxtHBase 类。datamath 包内,有多个类:MathDriver 类、MathMap MathSum 类、MathCount 类、MathDataAppend 类等,这个包内需要封装一些类似PI PI三角函数Log、lg平方根Sqr、方差Avg、max、min、total(sum) 绝对值abs、近似值(round) 加减乘除统计专业函数(水汽、功率) 字符串解析(.)时间转化(时间戳) 错误处理好点、坏点处理MapReduce三角函数(sin、cos、tan)Log
12、、lg平方根Sqr、方差Avg、max、min、total(sum) 绝对值abs、近似值(round) 加减乘除统计专业函数(水汽、功率) 字符串解析(.)时间转化(时间戳) 错误处理好点、坏点处理系统功能模块详细设计总体功能分为两个部分:数据订单,数据合成。数据订单即批量查询功能编写字符串解析类,解析HBase 的RowKey。然后编写Mapper 类,这个类继承自MapReduceBase,重写这里面的接口函数Mapper,将检索条件写入Mapper Driver 类调用JobConf 和JobClient 提交作业。数据合成即根据上次应用的需求对查询后的数据进行处理计算。查询后的数据传
13、递给 Reducer 类,在 Reducer Reducer Reducer 类需要继承MapReduceBase Reducer 接口函数,注意的一点是这个里面的输入Key Value Mapper 的输出key Value 类型相同。另外因为有电力方面专业函数的存在,需要编写一个附加类来提供这些计算方法, 以便于在用户Reducer 类里面调用。output.collect 用JobConf 及JobClient 来提交作业。信息编码设计代码结构设计源代码分为两个包,每个包内有不同的java Source 文件下需要导入hadoop 框架的四个.xml hbase-site.xmlhdfs
14、-site.xmlmapred-site.xmlhadoop jar 包支持。MapReduce 框架结构主要是分为 3 个类:Driver 类、Map 类、Reduce 类Driver 类代码结构为:首先创建JobConf 对象 conf,设置 conf 的配置,关联Map 类、Reducer 类及其他类。然后调用JobClient 的静态方法runJob 方法启动M/R 程序。Map MapReduceBase 并且实现Mapper 后根据检索条件遍历 HBase 中的内容,得到所需要的内容,并且或输出或传递给 用户类。Reducer MapReduceBase 并且实现Reducer 然
15、后通过调用附加类中的函数运算或者根据要求,对Mapper 之后的数据经行处理,并且利output.collect 方法输出最终的结果。附加类代码结构:根据表中所列的函数及其他需求,编写封装函数。代码命名规则尽量使用英文直译之后名称来定义,首字母大写。维护设计系统的可靠性和安全性后期设计中会加入控制台设计,权限设计以及针对用户的特殊设计。系统及用户维护设计利用 hadoop 框架提供的维护可以实现这一功能。系统扩充设计因为 hadoop 框架是支持横向扩展的,所以存储量这方面不用担心。在功能方面可以预留接口以方便以后的功能性扩展。系统配置硬件配置开发:可以在虚拟机下开发,需要五台虚拟机搭建had
16、oop 集群(测试使用运行:多台普通的X86 (hadoop 集群)软件配置开发环境:eclipse、java1.6、hadoop HBase、win7 64 运行环境:zookeeperHBaseHadoop、Linux64 位操作系统关键技术关键技术的一般说明Map/Reduce 是一个用于大规模数据处理的分布式计算编程模型,用户定义一个map 函Key/Value key/value reduce 函数将所有的这些中间的有着相同的key values 合并起来。而基于hadoop MapReduce 关键技术的实现方案运行于 Hadoop 的 MapReduce 应用程序最基本的组成部分包括一个 Mapper 和一个Reducer 类,以及一个创建 JobConf 的执行程序,在一些应用中还可以包括一个 Combiner MapReduce 框架是由一个单独的JobTracker(master)和很多歌 群节点的一个共同组成。在 MapReduce / (/DB/NOSQL/HBAS,客户端再加上作业的参数,就构成了作业配置job map 和 reduce 方法通过实现合适的抽象类,并在实现的方法中编写业务逻辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论