大数据处理详细设计说明.docx
- 文档编号:28696597
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:12
- 大小:51.42KB
大数据处理详细设计说明.docx
《大数据处理详细设计说明.docx》由会员分享,可在线阅读,更多相关《大数据处理详细设计说明.docx(12页珍藏版)》请在冰豆网上搜索。
大数据处理详细设计说明
1•引言
1.1背景与目的
1.2专业术语及说明
3.
1.3参考资料
2.设计概述
2.1任务及目标
2.2需求概述
2.3运行环境概述
3.系统详细需求分析
6.
3.1详细需求分析
4.总体设计方案
4.1系统总体结构
7.
4.2系统模块划分
5.系统详细设计
.9.
5.1系统结构设计
5.2系统功能模块详细设计
1.Q
6.2代码命名规则
12
7•维护设计
12
7.1系统的可靠性和安全性
12
7.2系统及用户维护设计
12
7.3系统扩充设计
12
8.系统配置
13
8.1硬件配置
.1.3.
8.2软件配置
.1.3.
9.关键技术
13
9.1关键技术的一般说明
13
9.2关键技术的实现方案
14
10.测试
.14.
10.1测试方案
14
1.引言
当下互联网和计算机技术越来越多的被各行各业利用,于是产生了海量的数据。
进入
2012年后,大数据”一词越来越多的被提及,人们用它来描述和定义信息爆照时代产生的
海量数据。
显而易见地,数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然现在企业可能还没有意识到,但随着时间的推移,人们将越来越多的意识到数据对企业的重要性。
而
这就需要有一种框架来分析处理这种大数据。
对于电力行业更是如此,电力方面每时每刻
都在产生着大量的数据,而对这些数据的分析和利用有着巨大的市场前景和意义。
1.2专业术语及说明
Hadoop:
—种分布式基础架构,由Apache基金会开发。
用户可以在不了解分布是底层细节的情况下,开发分布式程序。
充分利用集群的威力运算和存储。
Hadoop实现了
一个分布式系统(HadoopDistributedFileSystem),简称HDFS。
HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。
而且它提供高传输率(high
throughput)来访问应用程序的数据,适合那些有着超大数据集(largedataset)的应用
程序。
HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问
(streamingaccess)文件系统中的数据。
Hbase:
是一个分布式的、面向列的开源数据库。
Mapreduce:
是一种编程模型,用于大规模数据集(大于1T)的并行运算。
当前的软件实现是指定一个Map函数,用来把一组键值对映射成一组新的键值对,指定并发的
Reduce函数,用来保证所有的映射的键值对中的每一个共享相同的键组。
1.3参考资料
1】相海泉•大数据时代[J].中国信息界,2013(5).
2】李成华,张新访,金海,等.MapReduce:
新型的分布式并行计算编程模型[J].计算
机工程与科学,2011,33(003):
129-135.
3】谢桂兰,罗省贤.基于HadoopMapReduce模型的应用研究[J][J].微型机与应用,
2010,25(3):
4-7.
4】陈勇.基于Hadoop平台的通信数据分布式查询算法的设计与实现[D][D].北京:
北京交通大学,2009.
5】TaylorRC.AnoverviewoftheHadoop/MapReduce/HBaseframeworkandits
currentapplicationsinbioinformatics[J].BMCbioinformatics,2010,11(Suppl12):
S1.
2.设计概述
①从HBASE中取数据(driver类)>②通过MapReduce对数据进行第一次
处理(Mapper类)>③根据应用层的需要,对处理过的数据再次进行处理
(Reducer类以及附加类:
简单的数学基本函数、统计、概率等),并且返回给客户端(预留接口)
数据合成:
1、PI的常用函数:
最大值、平均值等
2、专业函数(与PI服务器类似的内置函数)
数据订单:
1、基本的数据挖掘、数理统计函数功能(如统计/概率)
2.2需求概述
因为电力行业在实际生产和应用的过程中会产生大量的数据,而这些数据又对电力有
着巨大的影响和意义。
对这些数据的处理和存储就成为一个迫在眉睫的问题。
从这些数据
中可以提取很多对于电力行业以后的发展和现今的实际生产有着指导意义的数据,利用好
这些海量的数据则成为如今电力的一个极具战略意义的问题。
但是,如今的PI服务器不但不能满足于这个需求而且成本较高,所以就有替代的必
要。
2.3运行环境概述
20个计算节点的Hadoop集群(可横向扩展),集群配置为2*4核CPU,40—80G内存,6—12T存储。
2.4详细设计方法和工具
利用Map函数从Hbase中取数据,Reduce函数对取到的数据进行处理,返回结果给
用户。
如下图
编程工具:
eclipse
编程语言:
java
3.系统详细需求分析
3.1详细需求分析
A功能需求分析:
批量查询功能,数据处理功能(专业数学函数,基本计算函数,统计等)
B性能需求分析:
实时性要求较高,对于数据的处理计算Mapreduce完全能够胜任
C资源需求分析:
多台普通X86服务器,成本较低。
D系统运行环境及限制条件分析:
系统需要在Linux系统上面运行,搭建hadoop集群
框架
E现有软、硬件资源分析:
如今华电现有X86服务器4台,可以利用虚拟技术对hadoop集群进行布置。
软件方面目前hadoop框架已搭建成功,可以直接使用。
4.总体设计方案
4.1系统总体结构
女口下图为hadoop、hbase、hadoopmapreduce的层次结构
HadoopMapReduce
HBase
HDFS
MapReduce分为三个类:
Driver类、Mapper类、Reducer类
输入的参数类型是String类(测点名+时间段+(query内容)),解析之后,通过
MapFunction按照检索条件最后输出List(Hashtable)类型结果;经过MapFunction之
后的结果,然后在Reducer类里通过调用附加类的函数进行运算,最后输出结果List
(Value)。
女口下图
4.2系统模块划分
1)Map类:
MapFunction
ArrayList SessionID,Value: Search MediateResults> ReduceFunction ArrayList(SearchResultsw)。 用户 Map写入检索条件,遍历数据库HBASE,得到需要的数据(可以提供的API按时 间检索,按点名检索等)。 需要参数为Hashtable类型(hashtable ID,Value: UserQuery>)进过Map函数之后输出数据为ArrayList SessionlD,Value: SearchMediateResults>。 2)Reduce类: Reduce函数得到Map的返回结果即ArrayList类型的数据之后经过运算处理返回 给User的数据为ArrayList(SearchResultsw)。 3)基础类: 封装的函数: 加减乘除等基本运算、统计count、计算概率、解析字符串、专业函数等。 4)Driver类: 使用JobConf和JobClient提交作业;与Map类和Reduce类关联。 5.1系统结构设计 系统分为两个java包: 一个是批量查询的包(querydatatable),一个是批量计算的 包(datamath)。 在querydatatable包内,有四个类: DriverQuery类、QueryMap类、 StringAnalytical类、TxtHBase类。 在datamath包内,有多个类: MathDriver类、MathMap类、MathSum类、 MathCount类、MathDataAppend类等,这个包内需要封装一些类似PI服务器里的函数 如下表所示 PI MapReduce 三角函数 三角函数(sin、cos、tan) Log、lg Log、lg 平方根Sqr、方差 平方根Sqr、方差 Avg、max、min、total(sum) Avg、max、min、total(sum) 绝对值abs、近似值(round) 绝对值abs、近似值(round) 加减乘除 加减乘除 统计 统计 专业函数(水汽、功率) 专业函数(水汽、功率) 字符串解析(...) 字符串解析(…) 时间转化(时间戳) 时间转化(时间戳) 错误处理 错误处理 好点、坏点处理 好点、坏点处理 55.2系统功能模块详细设计 总体功能分为两个部分: 数据订单,数据合成。 A.数据订单即批量查询功能 编写字符串解析类,解析HBase的RowKey。 然后编写Mapper类,这个类继承 自MapReduceBase,重写这里面的接口函数Mapper,将检索条件写入Mapper类。 然后通过Driver类调用JobConf和JobClient提交作业。 B.数据合成即根据上次应用的需求对查询后的数据进行处理计算。 查询后的数据传递给Reducer类,在Reducer类里进行处理,这里需要封装多个 Reducer类,根据上面列表内的函数依次封装,用户Reducer类需要继承 MapReduceBase类及实现Reducer接口函数,注意的一点是这个里面的输入Key及 Value要与Mapper的输出key及Value类型相同。 另外因为有电力方面专业函数的存在,需要编写一个附加类来提供这些计算方 法,以便于在用户Reducer类里面调用。 以上的核心逻辑处理完之后,用output.collect方法来输出最终的结果。 最后还是 使用JobConf及JobClient来提交作业。 6.1代码结构设计 源代码分为两个包,每个包内有不同的java类。 Source文件下需要导入hadoop框架 的四个.xml文件分另U为: core-site.xml、hbase-site.xml、hdfs-site.xml、mapred-site.xml。 还有需要有hadoop的jar包支持。 MapReduce框架结构主要是分为3个类: Driver类、Map类、Reduce类 Driver类代码结构为: 首先创建JobConf对象conf,设置conf的配置,关联Map类、 Reducer类及其他类。 然后调用JobClient的静态方法runJob方法启动M/R程序。 Map类代码结构为: 这个用户类要求继承自MapReduceBase并且实现Mapper接 口,然后根据检索条件遍历HBase中的内容,得到所需要的内容,并且或输出或传递给 Reducer用户类。 并且实现Reducer 之后的数据经行处 。 Reducer类代码结构为: 这个用户类要求继承自MapReduceBase接口,然后通过调用附加类中的函数运算或者根据要求,对Mapper 理,并且利用output.collect方法输出最终的结果。 附加类代码结构: 根据表中所列的函数及其他需求,编写封装函数 6.2代码命名规则 尽量使用英文直译之后名称来定义,首字母大写。 7.维护设计 7.1系统的可靠性和安全性 后期设计中会加入控制台设计,权限设计以及针对用户的特殊设计 7.2系统及用户维护设计 利用hadoop框架提供的维护可以实现这一功能 7.3系统扩充设计 因为hadoop框架是支持横向扩展的,所以存储量这方面不用担心。 在功能方面可以预留接口以方便以后的功能性扩展。 8.系统配置 8.1硬件配置 开发: 可以在虚拟机下开发,需要五台虚拟机搭建hadoop集群(测试使用)。 运行: 多台普通的X86服务器。 (实体的hadoop集群) 8.2软件配置 开发环境: eclipse、java1.6、hadoop框架、HBase、win764位操作系统运行环境: zookeeper、HBase、Hadoop、Linux64位操作系统 9.关键技术 9.1关键技术的一般说明 Map/Reduce是一个用于大规模数据处理的分布式计算编程模型,用户定义一个map 函数来处理一个Key/Value对以生成一批中间的key/value对,在定义一个reduce函数将所有的这些中间的有着相同的key的values合并起来。 而基于hadoop的MapReduce也 是如此。 9.2关键技术的实现方案 运行于Hadoop的MapReduce应用程序最基本的组成部分包括一个Mapper和一个 Reducer类,以及一个创建JobConf的执行程序,在一些应用中还可以包括一个Combiner 类。 MapReduce框架是由一个单独的JobTracker(master)和很多歌TaskTracker(slave)集群节点的一个共同组成。 在MapReduce客户端的代码需要指明输入/输出的位置(文件路径/DB/NOSQL/HBASE),客户端再加上作业的参数,就构成了作业配置(jobconfiguration),客户端代码需要定义map和reduce方法通过实现合适的抽象类,并在 实现的方法中编写业务逻辑,在客户端还要定义Map/Reduce的输入和输出类型,当 Hadoophejobclient提交作业(jar包/class/可执行程序)和配置信息给JobTracker,后者 负责分发这些软件和配置信息给slave、调度人物并且监控他们的执行,同时提供状态和诊 断信息给JobClient。 至于客户端job提交后就是hadoop的事情了。 本项设计中通过mapreduce框架从Hbasetable中读取数据,经过格式化、对内容的加工,再输出给用户。 10.测试 10.1测试方案 将编写好的代码打包成一个jar包,导入测试的5台虚拟机组成的hadoop集群中,编 写一个测试小程序 测试其运行的过程及结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据处理 详细 设计 说明