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 谢谢!