腾讯 张文郁 - 大数据实时体系的架构和应用

宇华彩

2018/05/13 发布于 技术 分类

本次大会内容丰富多彩,精彩纷呈,涉及数据库技术探索、数据库架构设计、大数据价值发现、行业应用、商业智能及数据仓库、机器学习、存储、NoSQL、SQL Server、PostgreSQL等不同主题,为广大参会者提供了多样化的选择。作为主办方,我们在不断努力地为参会者提供更好的学习和交流环境, 在以后的日子里,我们也会更加紧扣大家的实际需求和时代的发展,推出大家更关注的讨论话题。再次感谢大家的参与分享!

文字内容
1. 大数据实时体系的架构和应用 数据平台部/实时计算中心/业务开发组
2. 关于我 2010年加入腾讯数据平台部负责 分布式计算平台,集群调度的开 发,现负责实时计算体系基础建 设 和基于实时计算平台的推荐系 统建设和业务推广。 微信:tshirt 邮箱:gabyzhang@tencent.com
3. 数据平台目标-促进公司各业务数据共享 生活化电商,微店  用户行为(交易、收藏)  产品类目信息  财付通  QQ、手Q  qzone、朋友  会员、超Q、QQ秀  开放平台  微信  计费、营销  搜索、地图LBS  邮箱  输入法  CF、DNF等几十款  注册、登录  付费、充值  游戏内个性数据  腾讯网网站行为  视频、音乐  新闻 广告
4. 日均接入数平的数据 2011 • 400亿 • <200G 2013 3000亿 20T 2015 • 1.8万亿 • ~=200T
5. 数据平台部大数据体系基础架构 IDE-集成开发 LZ-任务调度 TDBank- 数 据 接 入 TRC-实时计算 TDW-离线计算 HDFS HBase TDE PG HERMES Tube Spark 分布式 存储 Gaia-资源调度 数据 应用 精准推荐 MTA 信鸽 秒级监控 数据提取 画像分析 自劣报表 ……
6. TRC的整体架构 开 发 任务配置中心 开发平台 运 输入逻辑 IDE环境 营 监控中心 配置中心 接 处理逻辑 编译调试 管 口 输出逻辑 任务提交 理 告警服务 日志中心 TDBank TDProcess TDEngine 实时采集 计算引擎 路由管理 数据迁移 平 实时 滑动 去重 持久 台 算法 窗口 过滤 化 组 压缩加密 容灾备份 一致性控制 件 分布式框架 分发过滤 路由 负载 消息 链接 管理 均衡 分发 管理 劢态扩容 内存管理 资源 管理 硬件资源管理 资源管理 资源隔离 扩容管理 软件资源管理 服务调度 容灾恢复 权限管理
7. 数据接入主要问题  主要矛盾  数据总量巨大  数据源种类繁多  数据格式各异  数据分布IDC众多  核心需求  秒级接入延时  成本、效率、安全  方便数据管理和使用  特色功能  自劣接入  多种格式适配  公网加密传输
8. TDBank 业务管理系统 业务数据源 消息 文件 DB 其他 Agent(binlog解析/打包/压缩…) 元数据管理 数据接入中心 Bus(协议解析/解压/滤重…) 业务配置 数据存储中心 Tube(消息订阅/推送…) TRC 权限管理 …… 运营操作 数据分拣中心 Sort(协议转换/分拣…) 数据存储层 MySQL TDW HDFS HBase ……
9. TDProcess流式处理引擎 开发 工具 语言 扩展 可视化DataFlow建模 piglatin/SQL编辑器 代码生成器 业务开发 编译调试 PigLatin/SQL语言适配 语法解析:AST 语义解析:Logical Plan 并行度优化策略 通用推荐 语义解析:Physical Plan 执行引擎适配 任务提交 远程提交 流式I/O库 实时算法库 计算 引擎
10. Storm Ecosystem Storm-Ganglia 监控 Stream-ML 算法 Storm-Cli (drpc, sql, pig script, dog script …) 交互 Storm-Core 内核和接口 Storm-Gaia/Docker 部署和资源管理 Storm-Example 基准测试 Storm-UI 界面 Storm-Scheduler 调度 Storm-IO (storm-tube kafka, hdfs, hbase, DBs) 输入输出库
11. Scheduler Impls What about resource negotiation? 基于物理机器负荷的调度策略: 按照机器的CPU/MEM资源使用百分比进行调度,理想结果是集群中每 天机器的CPU/MEM使用百分比是相近的 6700 6701 6702 6703 6700 6700 6701 …… 80% 75% 82% But …
12. Gaia在腾讯 –服务器 8800台 • –CPU ~20w+核 • –内存 ~600TB • –磁盘 ~52800块 • –存储容量 ~200PB • -每天调度的container个数 ~1亿+
13. 基于Gaia订制storm 1.提交任 务 Yarn Container Yarn Resources Manager 2.分配资 源 App Master UI Zookeepe r 心跳上 报 3.动态调 配任务所 需要的资 源 Yarn Container supervi sor work 基于Gaia的Nimbus HA One topology One storm Nimbus Supervisor的数 量不受限于物理机器 Gaia负责资源调度, Nimbus负责任务分配 (task) 扩容缩容逻辑由Nimbus的 rebanlance实现
14. 事务 Topologies Hippo 队列1 队列2 队列3 队列4 队列5 2 Confirm 队列 拉取一批数据 队列6 Zookeeper TDE 2.2 写TDE持久化 > > > > > 队列n  一个事务分两个阶段完成,batch和commit,batch并发执行,commit顺序执行。  Hippo队列由多个EmitBolt均衡读取,在没有confirm之前,队列的数据可重新读取。  TDE存储数据,在Value里面存储了事务ID,如果TDE里面的数据的事务ID大于或等于当前事务ID,则不做写操作。
15. Ganglia
16. 现网引流测试平台
17. 易用性?  编程接口复杂,对开发人员技能要求高,现有模式难以对外开放;  随着承接业务的增多,维护投入越来越大;  业务需求变化(例如算法调优)频繁,响应速度慢;  各业务独立开发,共享度不高,不能充分利用历史智力资产。
18. DSL on Storm 用户界面 CLI Java API IDE(Editor,Compile,Debug,Run) 语法解析 Antlr JavaCC->AST 语义解析 AST->Logical Plan->Physical Plan 执行引擎 Physical Plan->Execute Engine 执行环境 Hadoop MapReduce Job Topology Job
19. 开发语言:SQL or Pig-Latin? 业务需求 非业务需求 比较项 外部存储访问 嵌套数据结构处理能力 多维度组合交叉计算 复杂业务支持能力 UDF 时间窗 join 其他(Top,Sort等) 学习成本 实现复杂度 语言扩展能力 SQL Like 支持 弱 不支持 弱 不支持 不支持 支持 支持 低 高 低 Pig-Latin Like 支持 强 支持 强 支持 支持 支持 支持 中 中 高
20. TRC Studio 可视化数据流建模工具 可视化DataFlow建模 代码生成器 TRC Script PigLatin语言识别器 SQL语言识别器 高级声明式语言层 逻辑执行计划生成与优化 物理执行计划生成 并行度优化策略 自定义Java函数(UDF) 流式I/O库 TRC Platform Storm集群 消息系统 SQL/NoSQL存储 HDFS/Map-Reduce
21. 如何降低Storm开发的复杂度
22. 可视化DSL语言 从TDBank输入点击流
23. 可视化DSL语言 根据itemId进行过滤
24. 可视化DSL语言 对数据进行预处理
25. 可视化DSL语言 进行5分钟点击聚合计数
26. 可视化DSL语言 计算结果输出到TDE
27. TDEngine存储引擎  核心需求  高并发,低延迟  高可用性,数据安全  关注成本,关注资源利用率  线性扩展 Read CClliieenntt bucket1 Write bucket1 下发路由 Keeper 路由管理 1 2 3 4 ... 1024 MS AC BA CD BD ... ... ... ... 状态管理 DataNode1 DataNode2 „ DataNodeN 心跳状态上报 DataNode A DataNode B DataNode C 数据块 Bucket1 Bucket 2 数据复制 数据块 Bucket 2 Bucket 4 数据块 Bucket1 Bucket 3 扩容管理 DataNode D 数据块 Bucket 4 Bucket 3 数据迁移 特色功能 数据迁移 分布式集群管理  支持多副本数据备份,确保数据安全  主备机同时提供服务,提升集群资源利用率  集群高可用,容灾切换过程中仍然提供读写服务  全内存设计,多引擎支持 每天支撑万亿数据访问请求
28. TRC在腾讯 每天, 万亿实时消息接入,万亿次实时计算,万亿次存储访问 覆盖, SNG、IEG、MIG、CDG 等各大BG 涵盖, 广告、视频、游戏、文学、新闻、微信等多个业务 涉及, 个性化精准推荐、实时分析统计、秒级监控告警 等多个领域
30. CTR流式处理 预测用户A最可能点击广告,如何准备好预测相关数据? • 对每个广告,实时计算“用户↔广告”多个不同维度组合 的相关度指标 用户 基础属性 行为属性 兴趣标签 关系链 … 项目 广告位 广告 × 广告类目 所属行业 素材特征 … 上下文 地理位 置 × 时间 天气 节假日 … 反馈特征 滑动时间窗 点击 曝光 × 浏览 转发 点赞 … 1分钟 1小时 × 1天 7天 = 1个月 … 千万级特征向量 千亿级向量空间 = 交叉维度的动态 反馈特征  日均200亿请求对应的每1条曝光日志, 平均计算50多种交叉特征  仅广点通业务每天实时计算量超过万亿次  整个集群的计算量超过十万亿次
31. 基于实时计算的点击预估模型架构
32. TRC的应用– 概览 精准推荐 广点通广告 推荐 新闻推荐 视频推荐 游戏道具推 荐 实时分析 微信运营数 据门户 效果统计 订单画像分 析 实时监控 实时监控平 台 游戏内接口 调用 对微信的性能优化、 IDC部署、运营商选 择等有着十分重要 的作用 告警准确性大幅度提高;对监控对 象进行全纬度组合分析,实现了监 控的100%覆盖。