大数据平台概要设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
!
计算平台
概要设计说明书
作者:日期: 2013-01-28批准:日期:
—
审核:日期:
(版权所有,翻版必究)
文件修改记录
目录
\
1.引言...................................................
编写目的.................................................
术语与缩略词.............................................
对象及范围...............................................
参考资料.................................................
2.系统总体设计...........................................
需求规定.................................................
数据导入............................................
:
数据运算............................................
运算结果导出........................................
系统监控............................................
调度功能............................................
自动化安装部署与维护................................
运行环境.................................................
基本设计思路和处理流程...................................
系统结构.................................................
?
大数据运算系统架构图................................
hadoop体系各组件之间关系图.........................
计算平台系统功能图..................................
系统功能图逻辑说明..................................
计算平台业务流程图..................................
尚未解决的问题...........................................
3.模块/功能设计..........................................
计算驱动模块.............................................
\
设计思路............................................
流程图..............................................
处理逻辑............................................
调度模块.................................................
设计思路............................................
流程图..............................................
处理逻辑............................................
自动化安装部署模块.......................................
…
设计思路............................................
处理逻辑............................................
调度模块与计算驱动模块交互流程...........................
处理流程图..........................................
处理逻辑............................................
hadoop驱动模块调用驱动接口.........................
调度模块接收hadoop执行状态接口.....................
调度模块与kettle交互流程................................
&
处理流程图..........................................
处理逻辑............................................
对调度任务运行过程进行监控流程...........................
处理流程图..........................................
处理逻辑............................................
对hadoop驱动任务运行过程进行监控流程....................
处理流程图..........................................
处理逻辑............................................
~
对操作系统/应用程序监控流程..............................
处理流程图..........................................
处理逻辑............................................
监控报警模块.............................................
设计思路............................................
流程图..............................................
处理逻辑............................................
4.系统数据结构设计.......................................
>
数据实体关系图...........................................
数据逻辑结构.............................................
驱动任务设置表......................................
驱动设置表..........................................
驱动任务执行明细表..................................
调度任务表..........................................
调度步骤表..........................................
调度步骤执行记录表..................................
<
操作系统监控数据表..................................
应用程序监控数据表..................................
监控系统配置表......................................
业务数据记录表......................................
数据物理结构.............................................
5.安全设计...............................................
6.容错设计...............................................
挽救措施.................................................
~
系统维护设计.............................................
7.日志设计...............................................
1.引言
1.1编写目的
大数据泛指巨量的数据集,因可从中挖掘出有价值的信息而受到重视。
《华尔街日报》将大数据时代、智能化生产和无线网络革命称为引领未来繁荣的三大技术变革。
麦肯锡公司的报告指出数据是一种生产资料,大数据是下一个创新、竞争、生产力提高的前沿。
世界经济论坛的报告认定大数据为新财富,价值堪比石油。
因此,发达国家纷纷将开发利用大数据作为夺取新一轮竞争制高点的重要抓手。
互联网特别是移动互联网的发展,加快了信息化向社会经济各方面、大众日常生活的渗透。
有资料显示,1998年全球网民平均每月使用流量是1MB(兆字节),2000年是10MB,2003年是100MB,2008年是1GB(1GB等于1024MB),2014年将是10GB。
全网流量累计达到1EB(即10亿GB或1000PB)的时间在2001年是一年,在2004年是一个月,在2007年是一周,而2013年仅需一天,即一天产生的信息量可刻满亿张DVD光盘。
我国网民数居世界之首,每天产生的数据量也位于世界前列。
淘宝网站每天有超过数千万笔交易,单日数据产生量超过50TB(1TB等于1000GB),存储量40PB(1PB等于1000TB)。
百度公司目前数据总量接近1000PB,存储网页数量接近1万亿页,每天大约要处理60亿次搜索请求,几十PB数据。
一个8Mbps(兆比特每秒)的摄像头一小时能产生数据,一个城市若安装几十万个交通和安防摄像头,每月产生的数据量将达几十PB。
医院也是数据产生集中的地方。
现在,一个病人的CT影像数据量达几十GB,而全国每年门诊人数以数十亿计,并且他们的信息需要长时间保存。
总之,大数据存在于各行各业,一个大数据时代正在到来。
信息爆炸不自今日起,但近年来人们更加感受到大数据的来势迅猛。
一方面,
网民数量不断增加,另一方面,以物联网和家电为代表的联网设备数量增长更快。
2007年全球有5亿个设备联网,人均个;2013年全球将有500亿个设备联网,人均70个。
随着宽带化的发展,人均网络接入带宽和流量也迅速提升。
全球新产生数据年增40%,即信息总量每两年就可以翻番,这一趋势还将持续。
目前,单一数据集容量超过几十TB甚至数PB已不罕见,其规模大到无法在容许的时间内用常规软件工具对其内容进行抓取、管理和处理。
数据规模越大,处理的难度也越大,但对其进行挖掘可能得到的价值更大,这就是大数据热的原因。
鉴于越来越大的数据规模,采用常规基于DBMS的数据分析工具和方法已经无法满足大规模数据分析的需求,目前一些大型互联网公司采用hadoop体系进行大规模数据的运算,结合hadoop体系结构与实际的运算需求结合,采用hadoop 体系结构的分布式运算模型,通过集群的方式实现大数据运算,为企业提供大数据的价值。
?
为适应大数据计算的要求,同时提供大数据运算平台的系统设计的依据,特制定计算平台的系统概要设计文档,为后期的系统详细设计和实现提供依据。
1.2术语与缩略词
下列术语、定义和缩略语适用于本标准:
1.3对象及范围
1、开发人员、DBA、测试人员;
2、研发主管领导、产品人员;1.4、
1.5参考资料
1、《大数据处理体系架构》
2、《HBase The Definitive Guide》
3、《》
4、《Programming_Hive》
2.系统总体设计
2.1需求规定
2.2运行环境
·
操作系统:RedHad Enterprise
软件环境:Java
Kettle
MySQL
硬件环境:8核16G内存PC服务器8台
2.3基本设计思路和处理流程
1、按照数据分析的实时性,分为在线数据分析和离线数据分析。
2、在线数据分析:往往要求系统在数秒内返回上亿行数据的分析,从而才能达到不影响用户体验的目的。
;
3、离线数据分析:对大多数反馈时间要求不高的应用,比如离线统计分析、机器学习等,应采用离线分析的方式,通过数据采集工具将日志数据导入专门的分析平台进行分析。
4、系统主要以离线数据分析为主,采用目前在互联网业界流行的hadoop体系结构对大批量的数据进行运算,采用hadoop集群的方式对大数据进行运算。
5、数据运算平台以调度为主线,作为运算平台的核心控制系统,对运算平台的各个环节进行控制,且对运算过程中的步骤依赖关系进行控制,同时对各个环节进行监控,通过监控异常报警来提高系统的稳定性和异常响应速度。
2.4系统结构
大数据运算系统架构图
大数据平台系统功能图
系统功能图逻辑说明
1)生产系统的源数据通过sqoop,flume,Kettle等获取后保存在Kafka消息队列中或者保存到hadoop的hdfs系统中。
2);
3)调度系统负责自身的控制功能,
通过读取调度控制的配置信息调用驱动代理程序处理相关的运算功能。
4)驱动代理程序负责所有基于运算平台的相关组件的驱动任务,读取调度系统传
日志存储
统计分
析
(
数据应
用
Hadoop(HDFS、HBASE)
在线计算:
Storm 流计算框架
离线计算:
Hadoop(Map/Reduce、Hive、pig)
日志采集日志采集系统 Flume
/
数据服
务
数据提取,报表展现,
统计、分析数据存储,数据接口
MongoDB、MySql
递过来的模版信息,读取模版信息,并执行相应的驱动操作。
5)系统管理功能部分完成系统相关配置,管理等相关信息的维护操作。
6)监控系统对整个系统的运行状况进行监控,由各个业务子系统按照监控系统的要求实现相应的监控功能。
大数据平台功能结构图
大数据平台功能结构图说明:
1)大数据平台功能结构主要划分为计算平台,应用平台,系统管理以及监控,配置等相关应用功能。
2)计算平台分为基础运算部分,模版管理部分,驱动代理部分,系统调度部分。
|
3)计算平台分为离线计算与实时计算两种形式。
4)计算平台基于模版的功能开发,实际应用中做到模版的热插拔,对于功能需求只需要开发相应的模版,并部署上计算平台即可应用。
5)驱动代理程序管理所有的基于大数据运算的相关组件的代理功能,对外提供给调度系统应用,调用模版设置的相应的类型,进行相应类型的驱动操作。
6)调度系统只关心其自身的系统控制能力,不参与具体的业务以及计算功能组件的调用。
2.5尚未解决的问题
无
3.模块/功能设计
3.1调度模块
|
设计思路
一:调度模块实现功能思路
二:流程说明以及注意事项:
1、任务与步骤采用配置表的方式保存在mysql中,调度程序定时扫描任务表,
判断是否有启动的任务,如果有启动的任务,则启动任务。
2、调度任务需要判断任务中步骤之间的依赖关系,根据依赖关系判断是否可以
执行下一步的执行步骤。
3、一个任务中可以包含多个步骤,每个步骤为一个具体的任务,步骤与步骤直
接存在依赖关系。
4、对于具体的执行任务将由驱动代理自动完成。
流程图
#
处理逻辑
1、调度任务启动后扫描任务配置表,看任务配置表是否存在需要处理的任务信息,如果不存在需要处理的任务信息,则线程执行休眠,否则执行步骤2;
2、生成数据日期,并检查任务依赖关系,如果依赖关系未执行完,则现成等待操作,
等待依赖的任务执行完成,如果依赖关系都执行完,则获取符合条件的任务,执行步骤3:
3、读取任务信息表,获取任务信息,根据任务信息读取步骤信息,执行相应的步骤操作,执行步骤4;
4、根据步骤信息的配置获取需要执行的相应的模版信息,调用驱动代理程序执行相应的功能,执行步骤5;
5、驱动代理程序执行模版初始化,初始化完成后获取相应的参数数据,并根据模版类型选择具体的驱动程序,执行相应的操作。
6、判断该任务的下步骤是否执行完成,如果未执行完成,则执行步骤3,继续下一个步骤的执行,否则执行步骤7;
7、写步骤完成信息表,判断是否还存在要执行的任务,如果没有等待,存在需要执行的任务则执行步骤3.
3.2:
3.3驱动代理模块
设计思路
一:计算驱动模块实现功能思路
二:流程说明以及注意事项:
1、计算平台的驱动提供针对Hive,MapReduce,Hbase等相关的驱动应用。
2、基于业务模版的设置操作,调度执行业务模版,不关心模版具体业务形态。
3、一个驱动应用包含四个步骤:1)删除不用的数据;2)加载数据;3)运算;4)
导出结果文件。
4、提供监控需要的相应信息。
,
5、对于文件的操作,会涉及到多个文件或者目录操作,多个文件或者目录以逗号分隔,对文件操作中涉及到一些按照小时,天,月份的文件命名的操作,配置中以特殊字符进行替换。
流程图
处理逻辑
1、由调度程序驱动代理模块,调用驱动代理模块的驱动应用,传递需要驱动的模版编号,处理时间范围等相关信息,执行流程2;
2、驱动程序首先查询是否存在该模版,如果不存在模版,、则执行流程3,否则执行流程4;
3、则直接返回任务失败信息,不存在相关的模版,整个流程结束;
4、如果查询到相关的模版信息,先执行初始化模版信息以及需要删除的中间文件,多个文件以逗号分割,如果为空则表示不需要清理中间文件,执行流程5;
5、清理hive表数据操作,多个hive语句以逗号分割,如果为空则表示不需要进行分割,执行流程6
》
6、判断该操作是hive驱动mapreduce还是自定义的mapreduce,如果是自定义的mapreduce则走自定义的mapreduce操作,执行流程7,否则如果是hive驱动的mapreduce,则走hive操作流程,否则执行流程8;
7、如果mapreduce的操作流程,第一步执行加载文本文件数据,多个文本文件以逗号进行分割,第二步执行mapreduce操作,通过shell脚本的方式执行mapreduce 操作,第三步执行完后将结果输出。
8、如果是hive的操作流程,第一步先执行加载文本文件到hive表,如果有多个文件操作一逗号分割,第二步执行hive语句,多个hive语句以逗号分割的方式,第三步将结果输出到相应的hive表中。
9、根据设置导出的方式,将结果文件导出到mysql,或者mongodb,或者直接将文本文件从hdfs文件系统中导出。
3.4对操作系统/应用程序监控流程
处理流程图
处理逻辑
1、读取监控服务器列表,判断是否需要监控,如果需要监控,则执行步骤2,如果不需要监控,执行步骤5;
,
2、监控模块向监控服务器发送监控请求,等到被监控服务器的返回,执行步骤3;
3、被监控服务器接收到请求监控信息后,将相关的信息返回给监控模块,执行步骤4;
4、监控服务器将返回的数据进行解析后入库,执行步骤5;
5、判断被监控服务器是否都请求完成,如果请求完成,则执行步骤6,否则执行步骤1;
6、监控模块线程休眠10分钟,等待下次进行监控,执行步骤1.
3.5监控报警模块
设计思路
一:监控模块实现功能思路
>
二:流程说明以及注意事项:
1、监控报警模块主要完成三个级别的监控报警,分为:
1)操作系统级别,检测运行的机器的操作系统是否正常运行,CPU,内存,I/O,存储等资源的利用情况,采用Linux的Shell脚本对相关的信息进行收集并上报; 2)应用程序级别监控,检测kettle,hadoop,hive,hbase,zookeeper等相关程序是否正常启动,以及应用程序的相关资源的监控。
3)程序数据级别的监控,对数据情况进行监控,主要是数据异常的监控。
2、监控模块主要负责监控数据的采集,数据异常报警,以及后期的监控数据展示等功能。
3、对于系统级别和应用程序级别的监控数据采集采用由监控模块主动调用相应的应用接口的方式采集数据,对于应用数据级别的监控则由各个应用将相关的数据写入到数据库表,由监控系统对其进行扫描。
4、监控模块的报警机制支持优先级报警模式,对于优先级较高,需要紧急处理的报警,需要不间断的进行报警,但需要设置报警的频率,如10分钟重复一次。
;
5、监控的报警模式采用邮件监控的方式,辅助以短信提醒的方式。
流程图
处理逻辑
1、监控报警启动采用启动启动的方式进行,当监控报警线程启动后判断是否到达监控时间点,如果未到达监控时间点,则线程休眠1分钟后再次进行判断,如果到达监控时间点则执行步骤2。
2、读取需要监控任务列表,得到需要监控的任务,执行步骤3。
3、对监控任务的源数据进行扫描,判断是否存在异常,如果存在异常则保存监控异常数据,执行步骤4,否则执行步骤1。
4、判断监控列表是否都执行完,如果执行完,对于异常情况以邮件的方式通知相关人,否则执行步骤3。
4.系统数据结构设计
4.1-
4.2数据实体关系图
详细图例见附件
4.3数据逻辑结构
调度任务表
字段说明
数据
类型
!
是
否
主
键
备注
,
CreateTime
创建时间date否
ModifyUser修改人《
Varchar(255)
是ModifyTime修改时间date是' 调度步骤表
字段说明
数据
类型是
否
…
为
空
主
键
备注
StepId 步骤ID int否是&
主键,自增长
ID TaskId任务ID int否“任务表”主
键
StepSort,
执行顺序
int否相同则表示并
行
StepName步骤名称Varchar(255)》
否
TemplateID模板ID Int否~ PlanRunTime预期执行时Int是单位:分钟
长
CreateUser》
创建人
Varchar(255)否
CreateTime创建时间date,
否ModifyUser修改人Varchar(255)是…ModifyTime修改时间date是
调度任务依赖表
、
字段说明
数据
类型
是
否
为
空
主
键
备注
<
TaskId
任务ID int否
FatherId父任务ID、
int
否调度任务运行日志表
字段说明数据。
类型
是
否
为
空
主
键
备注
SerialId 记录ID Int@
否是主键,自增长
ID
TaskDate 任务日期Int否~
TaskId 任务ID Int否“任务表”
主键
Status#
任务状态
Int否0.初始化1
执行中 2.已
完成-99.执
行错误RetryTimes重试次数Int?
BeginTime 开始执行时
间
Date是\
EndTime 结束执行时
间
Date是
CreateTime*
创建时间
Date否
ModifyTime修改时间Date~
是
调度步骤运行日志表
字段说明
数据
类型
)
是
否
主
键
备注
ModifyTime
调度步骤运行错误日志表
字段
、
说明
数据
类型
是
否
为
空
主
键
备注
SerialId¥
记录ID
Int否是主键,自增
长ID TaskDate任务日期Int…
否
TaskId 任务ID Int否~
StepId 步骤ID Int否
ErrorInfo`
错误信息
Varchar(4000)否
InsertTime记录时间Date.
是
系统资源表
字段说明
数据
类型
@
是
否
为
主
键
备注
空
ResourceId资源ID Int否|
是主键,自增长ID
CpuInfo Cpu信息Varchar(4000)是
!
MemoryInfo
内存信息Varchar(4000)是
DiskInfo硬盘信息》
Varchar(4000)
是CreateTime记录创建时
间
date否'
CreateName记录创建人Varchar(256)否
!
ModifyTime
记录修改时
间
Date否
ModifyName记录修改人…
Varchar(256)
否服务器机器表
字段说明数据
`
类型
是
否
为
空
主
键
备注
MachineId机型ID Int、
否是主键,自增
长ID
CpuInfo Cpu信息Varchar(4000)是…
MemoryInfo内存信息Varchar(4000)是
DiskInfo)
硬盘信息
Varchar(4000)是
CreateTime记录创建时
间date&
否
CreateName记录创建人Varchar(256)否# ModifyTime记录修改时
间
Date否
ModifyName`
记录修改人
Varchar(256)否
服务器信息表
字段说明
{
数据
类型
是
否
为
空
主
键
备注
ServerId服务器ID 。
Int 否是主键,自增长
ID
ServerName服务器名称Varchar(256)是~ ServerIp服务器IP Varchar(256)是
.
CreateTime
记录创建时
间
date否
CreateName记录创建人;
Varchar(256)
否ModifyTime记录修改时
间
Date否@ ModifyName记录修改人Varchar(256)否
【
系统管理信息表
字段说明
数据
类型是
否
为
空
主
键
}
备注
SystemId服务器ID Int否是主键,自增长
ID
MachineId*
机型ID
Int否
ResourceId资源ID I nt-
否
ServerId服务器ID Int否;CreateTime记录创建时
间
date否
CreateName(
记录创建人
Varchar(256)否
ModifyTime记录修改时
间Date。
否
ModifyName记录修改人Varchar(256)否》集群信息表
字段说明
数据
类型是
否
为
空
%
主
键
备注
ClusterId集群ID I nt否是主键,自增长
ID
—
ClusterName
集群名称Varchar(256)是
ClusterPath集群配置目
录·
Varchar(256)
是
Remark集群配置备
注
Varchar(256)是/
CreateTime记录创建时
间
date否
、
CreateName
记录创建人Varchar(256)否
ModifyTime记录修改时
间,
Date
否
ModifyName记录修改人Varchar(256)否| 集群列表
字段说明
数据
类型是
否
~
为
空
主
键
备注
ListId集群列表ID Int否是?
主键,自增长
ID
ClusterId集群ID I nt否
ServerId.
服务器ID
Int否
CreateTime记录创建时
间date】
否
CreateName记录创建人Varchar(256)否| ModifyTime记录修改时
间
Date否
ModifyName—
记录修改人
Varchar(256)否
系统配置表
字段说明】是主备注
数据类型否
为
空
键
ConfigId系统配置ID '
Int 否是主键,自增长
ID
ConfigName配置名称Varchar(256)否》ConfigValue配置信息Varchar(256)否
】
ClusterId
集群ID I nt否
CreateTime记录创建时
间)
date
否
CreateName记录创建人Varchar(256)否》ModifyTime记录修改时
间
Date否
…
ModifyName
记录修改人Varchar(256)否Hadoop参数配置表
字段
《
说明
数据
类型
是
否
为
空
主
键
备注
ConfigId~Int否是主键,自增长
系统配置ID ID ConfigName配置名称Varchar(256))
否ConfigValue配置信息Varchar(256)否" ClusterId集群ID I nt否CreateTime%
记录创建时
间
date否
CreateName记录创建人Varchar(256)~
否ModifyTime记录修改时
间
Date否, ModifyName记录修改人Varchar(256)否
Jar配置表
\
字段说明
数据
类型
是
否
为
空
主
键
备注
;
ConfigId
系统配置ID Int否是主键,自增长
ID ConfigName配置名称;
Varchar(256)
否
ConfigValue配置信息Varchar(256)否) ClusterId集群ID I nt否
,
CreateTime
记录创建时
间
date否
CreateName记录创建人}
Varchar(256)
否ModifyTime记录修改时
间
Date否) ModifyName记录修改人Varchar(256)否
>
系统用户名表
字段说明
数据
类型是
否
为
空
主
键
、
备注
UserId用户ID I nt否是主键,自增长
ID
UserName$
用户名
Varchar(256)否
UserPassWd用户密码Varchar(256)}
否
CreateTime记录创建时date否,
CreateName记录创建人Varchar(256)否
ModifyTime^
记录修改时
间
Date否
ModifyName记录修改人Varchar(256)·
否
模版信息表
字段说明
数据
类型
(
是
否
为
空
主
键
备注
TemplateId模版ID I nt否,
是主键,自增长ID
TemplateName模版名称Varchar(256)否TemplateType模版类型Int否TemplatePath模版路径Varchar(256)否CreateTime记录创建时
间
Date否CreateName记录创建人Varchar(256)否ModifyTime记录修改时Date否
ModifyName记录修改人Varchar(256)否模版参数表
字段说明
数据
类型是
否
为
空
主
键
备注
ParametersId参数ID Int否是主键,自增
长ID ParametersName参数名称Varchar(256)否
ParametersType参数类型Int否
TemplateId模版ID Int否
CreateTime记录创建
时间
Date否
CreateName记录创建
人
Varchar(256)否
ModifyTime记录修改
时间
Date否
ModifyName记录修改
人
Varchar(256)否
实例信息表
字段说明
数据
类型是
否
为
空
主
键
备注
InstanceId实例ID Int否是主键,自增长
ID
InstanceName实例名称Varchar(256)否
TemplateId模版ID I nt否
CreateTime记录创建时
间
Date否
CreateName记录创建人Varchar(256)否
ModifyTime记录修改时
间
Date否
ModifyName记录修改人Varchar(256)否
4.4数据物理结构
给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理关系(索引、设备、存储区域)、设计考虑和保密条件。
5.安全设计
说明与该模块有关的安全设计方案,如:加密、验证、授权、防欺诈、防止sql 注入漏洞等方案(可参考《设计安全checklist》)
6.容错设计
6.1挽救措施
说明故障出现后可能采取的应急措施,或者替代方案,如:原始系统数据丢失后,则启用副本的数据;采用主备式部署,双机热备份等。
6.2系统维护设计
说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块,各个程序之间的对应关系。
7.日志设计
将该系统或功能哪些业务操作需要输出日志,以及日志包含的参数字段(可参考日志编程规范)。