自主大数据处理平台的设计和实现.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自主大数据处理平台的设计和实现
崔希宁 1
1. 中国移动北京公司信息系统部系统维护中心 , 北京 ,中国 100058
【摘要】本文分析大数据处理的基本原理,并根据分片存储、分布计算、移动计算的原则,论述一种基于通用数据库存储的大数据处理平台的构架设计和实现。
【关键词】大数据;分片存储;分布分析;移动计算
1现有基础设施无法应对数据驱动
当今的数据仓库解决方案通常是借助通用数据库
(比如 Oracle 或基于硬件的专用平台(比如 Teradata 、
Netezza 而创建的,而这两种方案都不能从根本上解决
当今(以及未来数据驱动型社会所面临的挑战。
通用数据库(比如 Oracle 是针对 OLTP 处理功能
设计的,在运行大量小规模交易查询数据时效果最好。
从结构上来说, 他们采用了“完全共享”或“磁盘共享”
体系。“完全共享”体系局限于单一服务器(通常是价
格比较昂贵的 SMP 服务器 , 其扩展性和性能受到相应
的限制。“磁盘共享”体系(比如 Oracle RAC允许系
统带有多个服务器, 这些服务器与 SAN 或其它共享存储
设备相连。这种体系需要通过一个狭窄的数据管道将所
有 I/O信息过滤到昂贵的共享磁盘子系统。实践证明:
这些通用磁盘共享体系复杂、脆弱,在处理万亿字节数
据时难以胜任。
2需要采用新的方法
以往的经验已经多次证明:专有硬件的优越性只能
维持很短的一段时间,然后就必然被迅速更新的商用硬
件取而代之。在数据仓库领域,专有互连体系、定制处
理器 /FPGA以及其它类似组件都曾经占有一席之地。不过,从现在的情况来看,这些老式技术已经逐渐被新式
数据构架体系所取代。分片存储、移动计算成为解决数据扩张的根本之道。
3自主的大数据处理平台构架设计
3.1 平台整体架构
主节点:
负责解析外部数据,以及对路由节点提供数据路由数据。
路由节点 ;
接收主节点的数据,以及把接收到的数据根据路由规则把数据分发到各个数据节点以及下一级的路由节点,
结合目前较为流行的 MINA 等网络框架,进行统一管理,负责每个模块之间的数据上传,下发,数据、消息等。
数据节点:
DATANODE 节点采用成熟数据库作为每个节点的数据节点,可以为ORACLE 、 MYSQL 、 MS SQL, POSTGRESQL 等数据库组成。
1、负责有各个路由节点发送过来的数据, 装载到数据库中
2、负责查询节点需要对数据检索,并返回查询节点对应的数据到结果库中或者直接将结果返回查询节点。
查询节点:
负责对客户提出的查询 SQL 语句进行解析,并且根据路由条件,分部到不同的数据节点中。
数据节点均返回数据之后把数据发送至查询结果
库后,直接将结果检索出来,返回给客户。
图 1. 数据处理平台总线结构
3.2 系统逻辑结构和物理结构拓扑图 2. 数据处理逻辑结构
图 3. 数据处理物理拓扑图 4自主平台可以实现功能的实现 4.1数据导入 \导出逻辑导入:
由于入库数据可能千奇百怪 , 各式各样 , 因此针对其他数据库的数据 , 支持APACHE MQ, SOCKET , XML , TXT ,结构化数据,以及各种数据库等源。
在数据导入的过程中,可以在每个节点进行数据导入, 导入之后, 将根据 main 节点把数据路由到各个数据节点中去。
逻辑导出:
数据导出,可以提供数据对外接口,包括 TXT , XML , 结构化数据, SOCKET 等以及导出到其他数据库中去均支持。
4.2 数据路由
数据路由主要负责数据统一转发 , 分配等工作 . 路由分配方式支持 :冗余 , 平均 , 范围 , 列表 , 模糊匹配等分配方式 .
冗余 :根据配置 , 针对数据在路由的过程中 , 对一份数据分发 , 可以分发至多数据节点 , 分发数据相同 , 保证各个节点可以同时对较为复杂的业务逻辑检索提供数据查询 . 这种数据检索查询结果没有合并过程 .
平均 :每次操作 , 根据实际录入的数据 , 在每个 datanode 上平均分配 , 保证所有的节点 , 数据量基本相同 , 平均分配入库数据量 .
范围 :根据范围条件 , 对录入的数据进行范围匹配 , 匹配之后的数据 , 根据范围把数据路由到不同的节点 .
列表 :根据每个字段给出的列表信息 , 范围在列表范围之内的 , 可以进入不同的节点分区之内 , 不在列表范围之内的 , 将进入默认节点 .
正则表达式 :根据不同的正则表达式规则 , 可以把数据路由到不同的数据节点中去 .
4.2 数据检索
数据检索主要为了对外提供数据查询服务 , 其中包括数据检索解析、数据检索分发, 数据检索返回中间库, 数据检索直接返回等功能。
图 4. 数据分布检索
数据检索主要对外提供相对较为简单的服务 , 主要根据实际现有的数据进行同步情况下的数据检索情况 . 主要检索步骤 :
1、 Search 主要负责数据接收服务 , 然后把数据
传输到路由模块
2、路由模块根据实际检索服务情况 , 把 SQL 语句
分发至各个数据节点 ,
3、各个数据节点执行完了数据检索 , 之后 , 把结
果立即返回至结果库。
4、结果库的数据直接返回值 Search 模块, 返回
给客户,或者有可以直接去结果库查询检索的结果。
4.3数据冗余管理
主要分为两种数据冗余方案
1、底层数据节点自带冗余方案