自主大数据处理平台的设计和实现


《2013 信息通信网技术业务发展研讨会》论文集 ·593· 自主大数据处理平台的设计和实现 崔希宁 中国移动北京公司 信息系统部 系统维护中心,北京 ,中国 100058 【摘要】本文分析大数据处理的基本原理,并根据分片存储、分布计 算、移动计算的原则,论述一种基于通用数据库存储的大数据处理平 台的构架设计和实现。 【关键词】大数据;分片存储;分布分析;移动计算 1 现有基础设施无法应对数据驱动 当今的数据仓库解决方案通常是借助通用数据库(比如 Oracle)或基于硬件的专 用平台(比如 Teradata、Netezza)而创建的,而这两种方案都不能从根本上解决当今(以 及未来)数据驱动型社会所面临的挑战。 通用数据库(比如 Oracle)是针对 OLTP 处理功能设计的,在运行大量小规模交易 查询数据时效果最好。从结构上来说,他们采用了“完全共享”或“磁盘共享”体系。 “完全共享”体系局限于单一服务器(通常是价格比较昂贵的 SMP 服务器),其扩展性 和性能受到相应的限制。“磁盘共享”体系(比如 Oracle RAC)允许系统带有多个服务 器,这些服务器与 SAN 或其它共享存储设备相连。这种体系需要通过一个狭窄的数据 管道将所有 I/O 信息过滤到昂贵的共享磁盘子系统。实践证明:这些通用磁盘共享体系 复杂、脆弱,在处理万亿字节数据时难以胜任。 2 需要采用新的方法 以往的经验已经多次证明:专有硬件的优越性只能维持很短的一段时间,然后就 《2013 信息通信网技术业务发展研讨会》论文集 ·594· 必然被迅速更新的商用硬件取而代之。在数据仓库领域,专有互连体系、定制处理器 /FPGA 以及其它类似组件都曾经占有一席之地。不过,从现在的情况来看,这些老式 技术已经逐渐被新式数据构架体系所取代。分片存储、移动计算成为解决数据扩张的 根本之道。 3 自主的大数据处理平台构架设计 3.1 平台整体架构  ■主节点: 负责解析外部数据,以及对路由节点提供数据路由数据。  ■路由节点; 接收主节点的数据,以及把接收到的数据根据路由规则把数据分发到各个数据节 点以及下一级的路由节点, 结合目前较为流行的 MINA 等网络框架,进行统一管理,负责每个模块之间的数 据上传,下发,数据、消息等。  ■数据节点: DATANODE 节点采用成熟数据库作为每个节点的数据节点,可以为 ORACLE、 MYSQL、MS SQL,POSTGRESQL 等数据库组成。 1、 负责有各个路由节点发送过来的 数据,装载到数据库中 2、 负责查询节点需要对数据检索,并返回查询节点对应的数据到结果库中或者直 接将结果返回查询节点。 ■查询节点: 负责对客户提出的查询 SQL 语句进行解析,并且根据路由条件,分部到不同的数 据节点中。 数据节点均返回数据之后把数据发送至查询结果库后,直接将结果检索出来,返 回给客户。 《2013 信息通信网技术业务发展研讨会》论文集 ·595· 图 1 数据处理平台总线结构 3.2 系统逻辑结构和物理结构拓扑 图 2 数据处理逻辑结构 《2013 信息通信网技术业务发展研讨会》论文集 ·596· 图 3 数据处理物理拓扑图 4 自主平台可以实现功能的实现 4.1 数据导入\导出 逻辑导入: 由于入库数据可能千奇百怪,各式各样,因此针对其他数据库的数据,支持 APACHE MQ,SOCKET,XML,TXT,结构化数据,以及各种数据库等源。 在数据导入的过程中,可以在每个节点进行数据导入,导入之后,将根据 main 节 点把数据路由到各个数据节点中去。 逻辑导出: 数据导出,可以提供数据对外接口,包括 TXT,XML,结构化数据,SOCKET 等 以及导出到其他数据库中去均支持。 4.2 数据路由 数据路由主要负责数据统一转发,分配等工作.路由分配方式支持:冗余,平均,范围, 列表,模糊匹配等分配方式. 《2013 信息通信网技术业务发展研讨会》论文集 ·597· 冗余:根据配置,针对数据在路由的过程中,对一份数据分发,可以分发至多数据节点, 分发数据相同,保证各个节点可以同时对较为复杂的业务逻辑检索提供数据查询.这种 数据检索查询结果没有合并过程. 平均:每次操作,根据实际录入的数据,在每个 datanode 上平均分配,保证所有的节点, 数据量基本相同,平均分配入库数据量. 2 1 3 4 5 6 Route Data Data Data Data 3 4 51 62 范围:根据范围条件,对录入的数据进行范围匹配,匹配之后的数据,根据范围把数据 路由到不同的节点. 2 1 3 4 5 6 Route Data <=3 Data >=2 and <=5 Data >4 Data >10 21 3 2345 56 列表:根据每个字段给出的列表信息,范围在列表范围之内的,可以进入不同的节点 《2013 信息通信网技术业务发展研讨会》论文集 ·598· 分区之内,不在列表范围之内的,将进入默认节点. 2 1 3 4 5 6 6 Route Data In (1,2,3) Data In (2,4,5) Data In (1,5,10) Data In(-1,0,6) 2 1 3 2 4 5 1 5 正则表达式:根据不同的正则表达式规则,可以把数据路由到不同的数据节点中去. 12323 Route Data /^A*B*C*/ Data /^A*/ Data /^AD*A/ Data /^\d/ AABBBCC ADDDDDDA AABBBCC AAABBBCCC AAAAAAB ADDDDDDA 12323 AABBBCC AAABBBCCC AAAAAAB BBBBA ADDDDDDA 4.3 数据检索 数据检索主要为了对外提供数据查询服务,其中包括数据检索解析、数据检索分发, 数据检索返回中间库,数据检索直接返回等功能。 图 4 数据分布检索 《2013 信息通信网技术业务发展研讨会》论文集 ·599· 数据检索主要对外提供相对较为简单的服务,主要根据实际现有的数据进行同步情 况下的数据检索情况.主要检索步骤: Search 主要负责数据接收服务,然后把数据传输到路由模块 路由模块根据实际检索服务情况,把 SQL 语句分发至各个数据节点, 各个数据节点执行完了数据检索,之后,把结果立即返回至结果库。 结果库的数据直接返回值 Search 模块,返回给客户,或者有可以直接去结果库查 询检索的结果。 4.4 数据冗余管理 主要分为两种数据冗余方案 底层数据节点自带冗余方案 由于数据节点采用 MYSQL 数据库,因此利用 MYSQL 自己的数据冗余复制方案, 有 LVS 对外提供 HA 切换保证 MYSQL 正常运行。 故障切换之后: ICDS 数据冗余方案,由路由节点给数据节点发送数据的时候,自动写同样的一份数 据,发送至冗余节点,冗余节点通过 DataNode 自动把数据装载到数据库中,如果一个节点 出现问题,路由节点会自动由另一个节点对外提供数据服务. 如果出现一个数据节点坏掉,不可恢复,这时候软件心跳检测出没有冗余,会提示报 警,需要进行数据冗余处理. 《2013 信息通信网技术业务发展研讨会》论文集 ·600· 5 自主平台的特点及其实现机制 5.1 灵活性 主节点稳定性 主节点负责的任务主要分为以下: 源文件解析【XML,TXT,EXCEL,SQL,SOCKET,定制化接口】。 解析之后,分发给各个路由节点。 生成 ICDSN 号,保证各个节点之间数据装载的一致性。 数据节点稳定性 数据存储架构 ICDS 对底层数据存储采用数据库技术,可以适用于不同的数据库,因此稳定性均 是基于目前关系型数据库的体系结构 数据冗余架构 当前 ICDS 第一版本以支持 MYSQL 为例,进行统一数据管理,底层数据冗余,全 部由 MYSQL 自行管理,进行数据复制,保证数据的一致性。 数据冗余切换管理 在数据冗余复制的时候,如果出现某个 DATANODE 节点出现了问题,将会有备份 节点自动接管。再接管的过程中,由于涉及到 IP 地址的更新,因此这里采用了 HA 的 技术原理,对 route 节点提供 VIP 地址,保证在连接的时候,由于节点自动 down 掉之 后,主备库之间自动切换的功能。 异常处理 在数据装载的过程中,如果出现了数据库异常,或者装载程序异常,软件会自动 《2013 信息通信网技术业务发展研讨会》论文集 ·601· 备份数据到节点磁盘缓存中。在软件启动的时候,将会重新装载所有没有装载的数据, 装在数据完成之后,DataNode 将启动成功,否则数据节点将处于 recover 状态。 路由节点稳定性 路由节点由两部分组成 上层数据分发到下层数据节点、路由节点的功能 在数据节点数据没有接收完成数据之前,路由节点的内存中是保存当前未发送完 的数据; 如果在路由节点出现了异常等任何问题,路由节点都会在异常处理的过程中,对 当前正在处理的数据进行磁盘保存。保证数据在整个传输的过程中不丢失。 查询节点 每个数据节点均可以充当查询节点【也可以同时充当路由节点】的角色 每个查询节点接收到查询命令之后,直接根据路由信息,发到对应的数据节点进 行数据检索,数据节点检索之后,就会把检索的结果集存放到结果库中去。 如果客户检索的结果集数据量很大,可以把数据存放到结果库,然后直接去结果 库查看结果即可。如果结果集很小,可以直接返回数据库,也可以直接返回给客户。 5.2 高性能 由于在目前所有的 OLTP 系统中,都是单一的数据库软件,而硬件又不能无限的扩 展,针对目前相对较小的数据库还是可以承受,但是数据量的膨胀速度,很多企业的 数据量超过了上百 TB,甚至上百 PB 的数据量, 针对如此庞大的数据进行数据分析, 统一检索,相对来说面临的问题接踵而至:效率问题,数据管理问题,数据安全问题 等等。 因此在数据进行并发检索的时候,可以把所有的简单的检索移植到多台硬件设备 上并行进行数据检索,可以实现多台主机同时运行共同对外提供数据检索,统计分析, 查询业务,由于节点数在 ICDS 中是无限扩展的,因此在使用和分析的过程中,是不需 要考虑数据量大小而引起的数据检索效率降低等问题,才能在第一时间得到 IT 分析的 第一手数据。 5.3 易维护 控制台管理 《2013 信息通信网技术业务发展研讨会》论文集 ·602· ICDS 对外提供了统一的控制平台,所有的操作均可以通过这一个控制平台来实现 对各个数据,路由节点的监控,以及路由信息对各个控制台路由数据的统计信息等操 作。 对添加,删除,修改节点,以及对节点的信息进行相应的修改等问题。 可以对单节点的信息进行统计分析,包括数据录入信息,数据检索信息,以及节 点中表的大小,记录条数等统计信息。 节点配置 在使用过程中,每个节点【MAIN,ROUTE,DATANODE】,均可以为 DATANODE 节 点,每个 DATANODE 节点配置均一样,只连接配置库,然后通过配置库表中信息,连 接自己对应的数据库。 只需要对各种不同级别的节点进行个别参数配置,数据库中配置即可。 节点启动 每个节点配置好之后,仅仅需要一个命令即可启动,但是需要有启动顺序,必须 先启动 data 节点,再启动 route 节点,最后启动 Main 节点。 如果先启动 Main 节点,再启动 route 节点,那将处于 recover 状态,在所有的 data 节点启动之后,route 将恢复 Normal 状态,最后 Main 恢复为 Normal 状态。 增加节点 如果数据量太大,或者由于检索效率等问题,需要对节点数进行增加节点,这时 候,只需要添加节点之后,把节点对应的 IP 地址,用户名,数据库名等基本登录信息 即可,然后软件会根据数据库配置响应的冗余数据库,也可以把数据冗余到其他节点 《2013 信息通信网技术业务发展研讨会》论文集 ·603· 数据库。 更新节点 更新节点数据:如果由于原来的某些路由配置问题,造成了某些数据库中数据量 偏移平均值太多【比如每个库都是 100GB 左右,突然有一个节点达到了上 TB,差距较 多】、或者根据特殊定义,对数据进行重新分配,在数据处理的过程中,此节点将处于 RECOVER 状态,不能再路由数据。 更新节点信息:只需要修改配置库上的信息,然后通过控制台刷新数据字典即可, 控制台会根据节点的相关信息,刷新响应节点的信息,而不是所有的节点信息。 删除节点 如果随着数据量变化的时候,可能由于某些原因,造成数据压力没有想象的大, 需要把部分节点拆卸掉,这时候需要停止节点,进行 download 操作,卸载掉数据,写 《2013 信息通信网技术业务发展研讨会》论文集 ·604· 在数据的时候,软件会根据路由节点的信息重新把数据路由到其他节点上。路由完成 之后,软件就会自动卸载掉此节点。 5.4 开放性 每个节点都可以同时承担查询节点,因此所有的节点可以同时对外提供服务,可 以提供自己数据的同时 JDBC,SPRING 等,也可以提供所有节点的数据检索支持 ICDS 所有节点路由、检索服务。 5.5 高效检索机制 由于 datanode 所有的操作,均使用普通的 DB 来进行数据管理,因此可以在任意一个 字段上建立索引,以及各种数据库支持的组合索引,支持相对较为灵活. 数据会通过 ICDS 路由直接发送到各个节点,,由各个节点进行数据检索统计,然后把 数据检索的结果,进行数据上传,上传至数据结果库中,但是由于客户需求不尽相同,因此 可以把结果库中的数据直接提供给客户,或者通过 ICDS 直接把数据返回给客户。 针对一些离散数据查询,由每个节点同时提供数据业务,大大提高数据数据检索并 发服务。 在数据统计方面,由于每个节点均可以提供数据服务,并且每个节点的数据存储 情况,可以自动重复数据冗余等机制,保证数据在每个节点上可以自由的组合,提供 客户数据检索,统计服务。 特点: 数据块大小根据每个节点数据库来定制 每个数据节点均可以对外提供数据检索服务,大大提高了数据检索并发度 《2013 信息通信网技术业务发展研讨会》论文集 ·605· 针对离散的数据,比如个人话单查询,审计查询,检索等,ICDS 检索的 I/O 的量 很小,远远小于目前的 HADOOP 等。 操作步骤: 数据检索的流程如下: 发起数据检索服务 数据检索把命令发给所有的路由节点 路由节点根据命令把数据分发给相应的数据节点 数据节点执行完操作之后,把数据返回给结果库 在通过 Mapreduce 把数据返回给查询节点 查询节点把数据返回给客户。 6 和现有技术对比 目前针对于大数据存储方案很多,例如 Oracle 的 EXADATA 一体机,HADOOP 开源 框架,GREEN PLUM 产品等多种数据提供解决方案,但是每个方案均有自己的特点。 《2013 信息通信网技术业务发展研讨会》论文集 ·606· EXDATA HADOOP GREEN PLUM 本例 投资 昂贵 开源 EMC 自主 扩展性 困难 容易 容易 容易 灵活性 不可以自由扩展 可以自由扩展 可以自由扩展 可以自由扩展 存储方式 Oracle 数据库 HADOOP 文件系统 PostgreSql Mysql/PostgreSql/oracle 等 提供服务接口 Oracle 文件系统 一个接口 每个节点均是对外的接口 数据检索 支持各种关联 不支持 简单的数据关联 简单的数据关联 冗余管理 ASM 冗余管理 自动备份冗余数据块 数据库节点冗余 数据库节点冗余 异构 仅支持 Linux 各种操作系统异构 Linux 各种操作系统异构 参考文献 Spring 攻略(美)GaryMak 人民邮电出版社 , 2005.. 作者简介 崔希宁 男,1974 年生,河北邢台人。北京化工大学信息科学与技术学院计算机应 用硕士。2000-2002 在信息产业部数据通讯研究所高级系统工程师,2002-今在中国移 动北京公司信息系统部系统维护中心任系统专家。从事支撑系统的系统设计建设,优 化工作。核心期刊发表论文《面向电信业务的端到端性能管理实现》《套装软件环境下 系统构架的性能设计与管理》《一种云计算动态扩展算法和分布计算构架及在电信支撑 系统中的实现》《智能信息生命周期理论及在电信支撑系统数据中心的应用》等著作。
还剩13页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

guet_lee

贡献于2017-01-15

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf