当前位置:文档之家› 大数据处理详细设计说明

大数据处理详细设计说明

目录目录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.信息编码设计6.1代码结构设计 1.16.2代码命名规则127•维护设计127.1系统的可靠性和安全性127.2系统及用户维护设计127.3系统扩充设计128.系统配置138.1硬件配置.1.3.8.2软件配置.1.3.9.关键技术139.1关键技术的一般说明139.2关键技术的实现方案1410.测试.14.10.1测试方案141.引言1.1背景与目的当下互联网和计算机技术越来越多的被各行各业利用,于是产生了海量的数据。

进入2012年后,大数据”一词越来越多的被提及,人们用它来描述和定义信息爆照时代产生的海量数据。

显而易见地,数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然现在企业可能还没有意识到,但随着时间的推移,人们将越来越多的意识到数据对企业的重要性。

而这就需要有一种框架来分析处理这种大数据。

对于电力行业更是如此,电力方面每时每刻都在产生着大量的数据,而对这些数据的分析和利用有着巨大的市场前景和意义。

1.2专业术语及说明Hadoop : —种分布式基础架构,由Apache基金会开发。

用户可以在不了解分布是底层细节的情况下,开发分布式程序。

充分利用集群的威力运算和存储。

Hadoop实现了一个分布式系统 (Hadoop Distributed File System ),简称HDFS。

HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost )硬件上。

而且它提供高传输率 (high throughput )来访问应用程序的数据,适合那些有着超大数据集(large data set )的应用程序。

HDFS放宽了 ( relax) POSIX的要求 (requirements )这样可以流的形式访问(streaming access )文件系统中的数据。

Hbase :是一个分布式的、面向列的开源数据库。

Map reduce :是一种编程模型,用于大规模数据集 (大于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 】Taylor R C. An overview of the Hadoop/MapReduce/HBase framework and itscurre nt applicatio ns in bioi nformatics[J]. BMC bioi nformatics, 2010, 11(Suppl 12): S1.2. 设计概述①从HBASE中取数据(driver类) ------------ >②通过MapReduce 对数据进行第一次处理(Mapper 类) -------------------- > ③根据应用层的需要,对处理过的数据再次进行处理(Reducer类以及附加类:简单的数学基本函数、统计、概率等),并且返回给客户端 (预留接口)数据合成:2.1任务及目标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 编程语言:java3. 系统详细需求分析3.1详细需求分析A 功能需求分析:批量查询功能,数据处理功能(专业数学函数,基本计算函数,统 计等)B 性能需求分析:实时性要求较高,对于数据的处理计算 Mapreduce 完全能够胜任C 资源需求分析:多台普通X86服务器,成本较低。

D 系统运行环境及限制条件分析 :系统需要在Linux 系统上面运行,搭建hadoop 集群框架E 现有软、硬件资源分析:如今华电现有 X86服务器4台,可以利用虚拟技术对 hadoop 集群进行布置。

软件方面目前hadoop 框架已搭建成功,可以直接使用。

产二二 盘拥节电数据块0数锯块14块数据块2 /------------- 』数据块m数抿块4主芳点nlNp无数据/JobTricJn ^r块数那,Shuffle 厂 ------- 、結果X^R rt] | H-4. 总体设计方案4.1系统总体结构女口下图为hadoop、hbase、hadoop mapreduce 的层次结构Hadoop MapReduceHBaseHDFSMap Reduce 分为三个类:Driver 类、Mapper 类、Reducer 类输入的参数类型是String类(测点名+时间段+ (query内容)),解析之后,通过Map Function 按照检索条件最后输出List (Hashtable )类型结果;经过Map Function 之后的结果,然后在Reducer类里通过调用附加类的函数进行运算,最后输出结果List (Value )。

女口下图4.2系统模块划分1) Map 类:Map Fun cti onArrayList<Key:Sessi onID,Value:SearchMediateResults>Reduce Fun ctionArrayList(SearchResultsw)。

用户Map写入检索条件,遍历数据库HBASE,得到需要的数据(可以提供的API按时间检索,按点名检索等)。

需要参数为Hashtable 类型(hashtable<Key:ID,Value:UserQuery> )进过Map 函数之后输出数据为ArrayList<Key:Sessio nlD,Value:Search MediateResults> 。

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服务器里的函数55.2系统功能模块详细设计总体功能分为两个部分:数据订单,数据合成。

A.数据订单即批量查询功能编写字符串解析类,解析HBase的RowKey。

然后编写Map per类,这个类继承自MapReduceBase ,重写这里面的接口函数Map per ,将检索条件写入Mapper类。

然后通过Driver类调用JobConf和JobClient提交作业。

B.数据合成即根据上次应用的需求对查询后的数据进行处理计算。

查询后的数据传递给Reducer类,在Reducer类里进行处理,这里需要封装多个Reducer类,根据上面列表内的函数依次封装,用户Reducer类需要继承MapReduceBase 类及实现Reducer接口函数,注意的一点是这个里面的输入Key及Value要与Map per的输出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包支持。

Map Reduce 框架结构主要是分为3个类:Driver类、Map类、Reduce类Driver类代码结构为:首先创建JobCo nf对象conf,设置conf的配置,关联Map类、Reducer类及其他类。

然后调用JobClie nt的静态方法run Job方法启动M/R程序。

Map类代码结构为:这个用户类要求继承自MapReduceBase 并且实现Mapper 接口,然后根据检索条件遍历HBase中的内容,得到所需要的内容,并且或输出或传递给Reducer 用户类。

Reducer 类代码结构为:这个用户类要求继承自 MapReduceBase 接口,然后通过调用附加类中的函数运算或者根据要求 ,对Mapper理,并且利用output.collect 方法输出最终的结果。

相关主题