Transcript PowerPoint

“大云”大数据平台及应用
中国移动通信研究院 郭磊涛
2013年11月
电信运营商具有更多的数据
移动互联网
专业SNS 博客
服务商
点评
新闻
地图 问答 SNS
电信运营商
电商
音乐
图片
消息
视频 优惠券
微博
签到 论坛
2G、3G、4G、WIFI
除了像移动互联网服务商那样关注“结果”,电信运营商还需要关注“过程”!
典型的应用场景之一:大数据批处理系统
目标:针对海量结构化、非结构化数据的ETL操作。从各种数据源获取数据,并进
行清洗、转换、去重、缺值补充等操作。通常采用MapReduce等并行计算技术。
技术要求举例:
针对海量数据实时离线批处理运
算(ETL),通常时间要求较为
宽松,如几个小时级别。
数据ETL运算种类多,灵活性强,
通常具有很强的定制化特征
数据通常需要导出到数据库、数
据仓库,提供报表能力
需要灵活的调度的系统,便于系
统需要和其他业务系统混合部署,
提高资源利用水平
例图:分时段汇总的业务场景
典型的应用场景之二:大数据查询系统
目标:针对海量结构化、半结构化数据的精确定位、区段扫描等条件查询操作,用
于网络优化、帐详单查询、故障定位、搜索引擎等业务场景。
原始
数据
采集预处理
计算2
计算1
针对海量数据实施交互式查询,
返回时间在1秒钟左右。
处理
融合
消息
针对海量大数据规模实施查询,
数据规模可以达到100TB-10PB
规模。
大数据库
大数据库
营业厅1
营业厅2
营业厅3
数据插入通常采用批处理方式,
而查询通常带有条件,通常返回
结果数较少
系统具备较高的并发性,支持大
量用户同时查询,依然可以在给
定时间出口返回结果
营业厅系统
例图:帐详单查询系统
技术要求举例:
营业厅4
数据具有很高的可靠性和可用性
要求
典型的应用场景之三:大数据挖掘系统
目标:针对海量结构化、非结构化数据的进行深度挖掘。通常需要根据业务需求设
计模型、训练集并选择算法(分类、聚类、关联、非结构化)。通常会使用各种分
布式数据挖掘工具和算法
技术要求举例:
针对海量数据实施全量数据挖掘,
规模达到10TB-PB规模。
处理时间没有严格要求,通常达
到几个小时,甚至更长时间
需要支持各种并行计算模式,如
MapReduce、BSP等
数据挖掘系统需要较好的用户界
面,用户通常具备业务知识,但
是未必具备开发经验
人群1
系统可以和其他系统混合部署
其它人群
例图:客户分类识别应用
数据具有一定的可靠性和可用性
要求
中国移动“大云” 云计算平台
经分KPI
集中运算
经分系统
ETL/DM
结算
系统
信令
系统
云计算
资源池系统
物联
网应用
EMail
计算/存储资源池
IT基础资源
商务智能平台
能力开放平台
并行数据
搜索引擎
抽取转换
BC-SE
BC-ETL
数据仓库系统
HugeTable
BC-BSP 数据并行框架
BC-Hadoop 数据存储和分析平台
K-V数据库
BC-kvDB
分布式
SQL数据
库
BC-RDB
分布式内
存引擎
BC-DME
消息队列
BCQueue
其他平台中间件
系
统
监
控
和
管
理
CloudSecurity
弹性块存储
对象存储
BC-Block
BC-oNest
store
实时交易类
CloudMaster
文件中间件 弹性计算
BC-NAS
BC-EC
数据管理/分析类
并行数据
挖掘工具
集
BC-PDM
…
“大云”产品
PaaS 产品
IaaS 产品
IDC服务
平
台
安
全
管
理
Hadoop数据存储与分析
BC-Hadoop:对开源Hadoop/HBase进行扩展和增强,为大云其他组件提供基本的存储计算能力。
基于Hadoop 1.0的NameNode/JobTracker HA,HBase Coprocessor优化,管理工具整合等
JobTracker
(Virtual IP)
JT0001
JT0002
JT0003
RegionServer
RS级别结果汇聚
线程池管理 异步IPC调用
Zookeeper
内部异步调用
Region
(走网络)
Region
本地调用
HConnectionManager
RegionServer
Region
Client
1,定位所有region
ProtocolHandler
Region
2,异步分发Call
RegionServer
Region
Region
Region
发送请求
返回结果
基于Ambari的Hadoop监控管理工具
• Apache Ambari是对Hadoop进行部署、监控和管理的开源项目
– Puppet部署hadoop服务
– Ganglia 收集hadoop 服务数据与生成图表
– Nagios监控集群服务状态并报警
HTTP/JMX
Hadoop
与server部署在同一台服务
Metrics
Ambari-web
(与server在同一个container)
Ganglia
Shell
Nagios
DB
REST
Yum
HTTP/cgi->rrd
获取RPM
HTTP/php
Ambari-agent
Ambari-client
(python cli)
REST
Ambari-server
(http server/jetty)
HTTPS
(heartbeat/json)
Puppet
基于该配置执行
解析json取到command
(state/execute/upgrade)
Python
生成
调用
site#.pp
.repo (第一次或upgrage)
基于Ambari的Hadoop监控管理工具
TODO:
• 启用MRv1 JT/HMaster HA
• 删除节点
• 节点异构配置(Ambari-3531)
数据仓库系统(HugeTable)
基于Hadoop的海量结构化数据存储系统,利用低成本硬件提供高性能的数据加载、索引查询
和并行分析能力,对外提供易于应用集成的数据访问接口
 大容量:支持PB级别的数据存储能力
 低成本:基于PC架构,不需要外接集中存
储设备
 高性能:秒级别索引查询、数据并行扫描
 可靠性:数据冗余备份永不丢失
 可定制:根据应用需求选择索引类型及存储
引擎
 接口丰富:提供标准的JDBC/ODBC/ SQL
接口;提串行Scan接口和分布式
MapReduce接口
 外围工具:支持数据、性能、故障、配置、
日志管理功能;支持外部数据并行加载;支
持数据快速备份、恢复
•
•
•
单条查询等(少量数据)
实时性要求高的分析查询SQL(数据量满足impala内存限制条件)
复杂SQL语句或者扫描大表全表(大规模数据聚合查询等占用空间超过了impala内存能力)
图计算平台(BC-BSP)
BC-BSP:针对社交网络分析、用户精准营销、搜索引擎PageRank计算等图计算领域的数据挖
掘需求而研发的并行计算框架,针对迭代计算,计算效率优于MapReduce框架
Master
Run a Job
BSP
Program
Summit Job
BSP
JobClient
4:读取S步的同步信息
ZooKeeper集群
BSP
Master
ea
t
Client
tB
ar
5:写入S+1步指令 eat
rt B
He
Hea
ZooKeeper 1
Initialize
Job
BSPMaster
ZooKeeper 2
7:(可选)检查点同步
WorkerServer
任务 2
2: 局部同步
BSPPeer
6:读取S+1步指令
Barrier
Synchronization
Worker 1
任务 3
BSPPeer
检查点
Launch
Tasks
... 任务 1
检查点
任务 2
BSPPeer
Launch
Tasks
Heart
Beat
任务 1
WorkerServer
BSPPeer
Heart
Beat
3:全局同步
Heart
Beat
ZooKeeper
Heart
Beat
1:读取S步指令
1:读取S步指令
Worker
Task
Worker
Server
Server
Worker
Task
Worker
Server
Server
Worker 1
Barrier
Synchronization
2: 局部同步
Worker
Task
Worker
Server
Server
Worker
Task
Worker
Server
Server
任务 3
检查点
等待
Worker1
检查点
任务 4
Worker 2
任务 4
Worker n
Worker 2
超步S
同步控制
超步S+1
http://www.github.com/cmri/
并行数据挖掘工具集(BC-PDM)
BC-PDM:支持SaaS模式的海量数据并行处理、分析与挖掘系统。适用于经营决策、用户行
为分析、精准营销、网络优化、移动互联网等领域的智能数据分析与挖掘应用
应用
主要特点
各种海量数据处理、挖掘应用
Web GUI/工作流引擎
SQL脚本
CLI命令行
广
域
网
并行
数据探索
并行
数据ETL
数据交换
并行
数据挖掘
HugeTable
BC-BSP
…
元数据服务器
社交
用户权限管
网络分析
理
任
务
数据分割
子任
务
M1
M2
…
任务分解
M2
任务分发服务器
block2
MapReduce
Mi
R1
R2
block3
PC节点
…
PC节点
block1
block2
M1
PC节点
block1
block3
PC节点
分布式集群
管理服务器
Rj
block1
Rj
PC节点
block3
block2
R1
PC节点
R2
PC节点
PC节点
Mi
PC节点
• 数据交换:支持与RDB直接交换数据
、支持CSV格式数据
• 数据ETL:支持数据清洗、转换、集
成等7大类45种ETL
• 数据探索:支持数据统计、变量分析
、分布特征探索等
• 数据挖掘算法:支持分类、聚类、关
联分析等3大类共15种算法
• 社交网络分析:支持网络特征分析、
社团发现和演化、社团展示等
• 支持SaaS服务模式:Web浏览器使用
,并可支持应用共享
• 支持丰富的用户UI: 支持Web图形化
方式创建数据分析逻辑,支持SQL脚
本方式,支持CLI命令行方式
• 支持二次开发:Java API、Web Service
K-V数据库(BC-KVDB)
BC-KVDB:根据订购关系存储、用户个人信息存储等应用需求和相关规范,增强系统操作维护功能、
优化性能并提高系统可靠性。提供一个高并发、高可扩展的键值对存储系统。
Master节点集群
Thrift
实现用户认证和授权
USER_PRIV
Client
Master
NameSpace
Native API
M
Zookeeper集群
NS_PRIV
zk
RS2
zk
Root file
index...
TABLE_PRIV
Table
M
RS1
M
实现多个主节点的互备
Shell
zk
MetaRs
Client
元数据管理子系统
客户端子系统
元数据与用户数据隔离存储
数据连续范围分区,类
似HBase
网络通信组件
Region
Meta file
Root file
RegionServer服务层
RegionServer服务层
RegionServer服务层
存储引擎访问控制接口层
存储引擎访问控制接口层
存储引擎访问控制接口层
存储引擎
存储引擎
存储节点
存储节点
Query
Cache
Cell
Cache
通过Region数据的多副本,
保证数据的高可靠
SSD
存储引擎
DataFile
存储节点
•
•
不依赖DFS,数据直接读写本地多个磁盘
Query Cache & Block Cache
存储节点集群子系统
SQL数据库(BC-RDB)
BC-RDB 是基于MySQL的分布式数据库,系统由多个安全组(safegroup)
和一个分布式事务管理器组成。
应用系统
应用系统
应用系统
应用系统
采用“两阶段提交协议即2PC”来实现分布
式事务
API开发接口(JDBC/ADO.NET/ODBC)
负载均衡(F5等负载均衡设备)
RCluster
安全组
SafeGroup22
安全组
SafeGroup01
集群节点1-1
RCluster
RNode
RdbRep
RdbWare
… …
……
可扩展到
64个安全组
192个集群节
点
集群节点1-3
RCluster
RNode
RdbRep
TX
Transaction Manager
集群节点22-1
RCluster
RNode
RdbRep
RdbWare
… …
Librm
分布式
事务管理器
DBXA
Dbxac
XA
LX
Dbxa Client
Dbxad
Dbxa Server
TM
集群节点22-3
RCluster
RNode
RdbRep
RdbWare
B1
RdbWare
TCP/IP network
B3
B2
高速网络
Zookeeper
节点
Zookeeper
节点
……
Zookeeper
节点
Resource Manager
Resource Manager
Resource Manager
MySQL
Innodb
MySQL
Innodb
MySQL
Innodb
RM1
RM2
RM3
DBXA分布式事务管理系统
“大云”应用案例之一:大数据ETL业务
流程
1
2
8
9
10
11
现网时间
(min)
4650
2700
2100
1800
1500
490
云ETL时间
(min) 加速比例
1153
4.03
1571
1.72
1293
1.62
1150
1.56
1225
1.22
325
1.51
现网3.2天,
减少为0.8天
节约近2.5天
5000
4500
4000
3500
3000
2500
2000
1500
1000
500
0
滚详单类
时间减少
绝对值
(小时)
58.3
18.8
13.4
10.8
4.6
2.8
现网时间(min)
HIVE时间(min)
1
2
8
9
10
11
现网90分钟
减少为10分钟
仅为1/10
140
出月表类
现网时间 云ETL时
(min) 间(min) MR时间
云ETL脚本
加速比例
时间减
少绝对
值(小
时)
120
100
80
现网时间(min)
60
HIVE时间(min)
流程3
90
10
无
9.00
1.3
流程4
130
59
40
3.25
1.5
流程5
60
14
无
4.28
0.8
流程6
80
25
无
2.50
0.9
20
流程7
130
47
无
2.76
1.9
0
MR时间
40
流程3
流程4
流程5
流程6
流程7
“大云”应用案例之二:大数据查询业务
帐详单系统存储数量急剧膨胀,传统架构难以满足当前业务运营要求,系统面临扩
容难题
 某地市应用,每个月帐详单总体数据量
原始
数据
10TB
 话单通过HTLoad工具批量加载
采集预处理
计算2
计算1
处理
融合
消息
 帐详单查询通过SQL或Native API接口进行
 复杂分析则通过MR接口进行
HugeTable表2
HugeTable表1
 HugeTable支持数据按照Join key预先进行
数据划分,减少join过程中数据在节点间
营业厅系统
的拷贝
营业厅1
营业厅2
营业厅3
营业厅4
应用效果:
加载:支持数据并行加载,数据加载保证完整性和可靠性;
查询:在高并发条件下,数据查询性能一般可达到网络IO(对于千兆以太网单节点可达1GB)或磁盘IO瓶颈;
更新:可支持单条或批量数据增删改查操作,聚合更新带宽可达网络IO极限;
压缩:对数据内容进行高效压缩,节省磁盘、网络IO,节省存储空间
小结
BC-PDM
挖掘
BC-BSP
图计算
HugeTable SQL工具
Hadoop
HDFS+MR
BC-RDB
DataBase
BC-NoSQL KeyValue
谢谢!