第1页
腾讯大数据平台
赵伟
第2页
赵伟
2009年加入腾讯数据平台部 长期负责TDW系统的研发工作 在腾讯推广了PostgreSQL的应用 目前负责腾讯分布式PG的研发 开源作品:zhparser(https://github.com/amutu/zhparser)
第3页
统一权限管理
TDBank数据接入
系统架构
IN
IDE-集成开发
LZ-任务调度
TRC-实时计算
TDW-离线计算
HDFS
HBase
TDE
PG PG-XL Tube
……
Gaia-资源调度
分布式 存储
数据 应用
精准推荐 画像分析 数据提取 数据分发 运营分析
……
OUT
第4页
TDbank 实时数据接入平台
数据源 接入
数据缓存 预处理
数据 深加工 TDBank — Tencent Data Bank 从业务数据源端实时采集数据,进行预处理和分布式消息缓存后,照消息 订阅的方式,分发给后端的离线和在线处理系统
第5页
1天 → 2秒
Linux
HDFS
TDW
挑战: T+1,实时性不足 忙时,入库压力大 流程,复杂维护难 质量,无法保证
集群
分布式消 息 队列
订阅 分发
TDW TRC
优点: 主动实时采集 公网传输(1000台Agent) 可用度提升至99.99% 消息缓存
第6页
TDbank业务量
2013年3月 100亿/天
2013年8月 1000亿/天
2014年3月 5500亿/天
2014年12月1.5w亿/天
每天300TB数据接入 1~2s的平均延时 可用性99.99%
第7页
TDW 分布式数据仓库
集成开发环境 IDE
任务统一调度
Lhotse
Hive / Pig 查询处理引擎
计算 引擎
存储 引擎
MapReduce Spark
HDFS
HADOOP 集群
PG 小数据 处理 (约90台)
HBase 实时 查询
TDBank 数据采集
资源调度和管理 Gaia
TDW — Tencent distributed Data Warehouse 腾讯分布式数据仓库,支持百PB级的数据存储和计算,为公司产品提供海 量、高效、稳定的大数据平台支撑和决策支持
第8页
TDW:Hive优化
功能扩充
易用性
• 基于角色的权限管理 • 兼容Oracle的分区功能 • 窗口函数 • 多维分析功能 • 公用表表达式-CTE • DML-update/delete • 入库数据校验
• 命令行工具 • DB存储引擎 • SQL语法细节 • TDW集成开发环境
性能优化
• Hash Join • 按行split • Order by limit优化 • 查询计划并行优化 • 元数据重构
第9页
TDW:计算优化
挑战:大集群内任务(归属不同业务)间的影响。 上千并发job(现网4k)如何有效执行?
POOL g1_online g1_offline
default
MIN 2000 500 1500
MAX 5000 1000 2000
REQUEST 3000 1500 1000
SHARE 3000 1000 1000
GRANTED 3000 1000 1000
第10页
TDW:计算优化-续
使用HyperLogLog基数估值算法优化count distinct操作性能
估值的准确率在99%以上
HyperLogLog论文: The analysis of a near-optimal cardinality estimation algorithm
group by 字段 字段值分布
est_distinct(h) 耗时( 单位s)
count(distinct h)耗时 (单位s) 耗时比
1 常数
50 376 1:7.52
a
0~10均 匀分布
b 0~100 均匀分
布
58 60
c 0~1k 均匀 分布
g
0~1k非均 匀分布, 少数值
占6970%
d 0~10k 均匀分
布
e 0~100k 均匀分
布
358 248 238
239 230
1:6.17 1:4.96 1:3.60 1:5.40 1:2.94 1:1.29
第11页
TDW:存储优化
挑战:大量的历史数据,是否应该清除?
数据资源具有不可再生性,需差异化处理
数据类型
压缩算法
副本策略
前后对比
L0(热)
Lzo(2-3倍)
3副本
1:1
80 76 70
L1(中) L2(冷)
gzip(5-10倍) gzip(5-10倍)
3副本 1.4-raid
2.5:1 5:1
60 54
50 40
10 7
423 132
1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
第12页
减小TDW
Hive的元T数D据W:存储优化-续
压力
减小HDFS NameNode压
力 增强HDFS
Raid效L果isRt分an区ge转分换区成
热数据
table_xx_hourly part_2014120123 part_2014120122 ...... part_2014120101 ...... part_2014110123 ......
part_2014110101
Range分区 历史合并
part_2014110100 ...... part_2014013123
......
分区合并后 HDFS文件合并
历史 数据
part_2014010101 part_2014010100 ......
table_xx_hourly part_2014120123 part_2014120122 ...... part_2014120101
合并 ......
合并
part_20141101 天分区 ...... part_201312 月分区 ......
第13页
TDW单集群规模
200台
440台
4400台
2013.6
2012.6
2011.6
62001040.6台
82801040.12台
总存储100PB 日运行job总数150万+ 日接入数据量200TB 日扫描数据8.5PB 最高4000个并发job
第14页
TDW成本优化
第15页
TRC 腾讯实时计算平台
数据接入
实时计算应用
结果处理/展现
TDBank
SQL/Pig-Latin JStorm集群
KV存储 DB存储
HBase TDE
PostgreSQL MySQL
TRC — Tencent Real-time Computing 基于在线消息流的实时计算模型,对海量数据进行实时采集、流式
计算、实时存储、实时展示的全流程实时计算体系
第16页
Storm on Gaia(YARN)
1.提交任务
Gaia Container
Gaia Resources Manager
2.分配资源
App Master
Nimbus
UI
Zookeeper
心跳上报
3.动态调配 任务所需要 的资源
Gaia Container
supervisor
work
独立的AppMaster负责资源管理 使用Container做任务资源隔离 通过资源池实现任务的权限管理 平台具备良好的容灾机制 根据CPU,内存自动扩容和缩容
第17页
Pig 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
过程化类SQL编程接口 降低实时计算业务技能门槛 提升开发效率 为实时计算平台开放打下基础
第18页
SQL on Storm
第19页
TRC应用情况
精准推荐
• 广点通广 告推荐
• 电商推荐 • 视频推荐 • 游戏道具
推荐
数据分析
• 微信运营 数据门户
• 实时效果 统计
系统监控
• 实时监控 平台
实时消息输入量:3000亿
广点通推荐效果提 升 20%以上
对微信的性能优 化、IDC部署、运 营商选择等有着十 分重要的作用
告警准确性大幅度 提高;对监控对象 进行全纬度组合分 析,实现了监控 的100%覆盖。
第20页
腾讯大数据官网:data.qq.com
第22页
结束&QA
E-mail:amutu@amutu.com blog:http://amutu.com/blog/