当前位置:
文档之家› Tencent大数据技术架构
Tencent大数据技术架构
1、监控实例状态并上报; 2、监控表状态并上报; 3、拉取并执行数据搬迁任务; …
SetA
网关 主 MySQL + Agent 备1 MySQL + Agent
…
应用 MySQL API
备2n MySQL + Agent
网关
SetB
网关 主 MySQL + Agent 备1 MySQL + Agent
…
备2n MySQL + Agent
1、识别DDL类sql,并以任务形式保存至scheduler; 2、解析DML类sql,并转发至对应Set; 3、收集Set返回的结果,组合后返回请求端; 4、watch并获取表的访问路由; …
容量:自动分表
GW(逻辑表) Mysql(物理表) GW(逻辑表) Mysql(物理表)
T 0 T 1
T
T
当SET资源不够或表 记录超标时,触发 扩容,物理表分裂
T 2 T T 3
该过程自动完成
初始态:逻辑表=物理表
T n
扩容后:逻辑表=N个物理表
容量:自动伸缩
伸缩方式
整表迁移 子表分裂
T1 T2 T3
原则:避免表分裂,及时表合并 表分裂的问题
在一个集群中,每次表分裂,会导致集群 表数量的增加;集群中表的数量就是路由 的条数,表数量越多,路由的效率就会越 低
•
• •
采用hardlimit+softlimit结合的方式
Hardlimit保证安全,不超机器总容量 Softlimit保证充分利用整机资源
14
Gaia 技术特点
强扩展性:支持单cluster万台规模
(即将达到
8800节点,20w+核,1500个pool)
高调度吞吐:毫秒级的下发效率(App并发3.5k,Container匹配时间0.2ms) 弹性内存管理:hardlimit+softlimit相结合充分利用整机资源 多维度资源管理:新增Network IO、Disk IO等资源管理维度,提升了隔离性 丰富的用户api:为业务提供更便捷的容灾、扩容、缩容和升级等方式 建立“on Gaia”生态圈:支持storm、spark、MR等各种应用
资源管理 TRM - Gaia 服务 器 服务 器 服务 器 服务 器 服务 器
…
3+1结构:资源管理、服务管理、开发框架 + 集群控制台
TAM应用管理-流量调度
(ip, cmd, uin, bizcode, …)
业务请求
包头
包身(value…)
调度规则
接入层
现网流量copy转发
正式
灰度
沙箱
node
备 主
主 备
高一致,跨IDC
高一致性容灾设计
数据安全
存储安全 访问安全
热备:至少双份 冷备:快照+binlog 兼容MySQL权限控制 用户级别的数据隔离、访问控制
冷备中心
增量热备
主 备1
增量热备 …
全量冷备 SET
备(n-1)
用户界面
命令行 编程接口 管理台
通过MySQL客户端 访问,与使用本地 MySQL一样
多磁盘管理
统一工作目录,为job提供更大磁盘空间 充分利用多磁盘IO并发
13
(三)Gaia-优化资源管理策略
• CPU管理
• • • 资源超发:提高资源使用率 基于优先级调度的cpu.share 高优先级作业的服务质量得以保证
• 内存管理
• 引入EMC(Elastic Memory Control)
Gaia
资源管理
关键技术概览 资源调度Gaia – 8800台 分布式数据库TDSQL – 高一致性
分布式计算 – 规模化、实时化、多样化
资源调度-Gaia
Gaia简介 Gaia核心特性
Gaia 打造大数据云操作系统
配置管理、单点容灾+性能,扩缩容,资源利用率…,统统不用操心!
将一组机器映射成一台逻辑上的大机器 为上层提供简单、统一的资源界面
NodeManager
硬件设施
9
(一)Gaia vs Yarn – 提升可扩展性
在规模为1万节点,1万作业,1200队列时, Yarn原生fair调度器平均每秒只能调度20个container。 一天只能调度170万个container。
而我们的现网集群, 平均每天调度的container数量为7000万+。
18
业界方案-阿里:TDDL
基于集中式配置的 jdbc datasource实现,主要解 决分库分表对应用透明和 异构DB间的数据复制 主要特点
主备和动态切换 带权重的读写分离 集中式数据源信息管理和 动态变更 支持mysql和oracle数据库 基于jdbc规范,容易扩展 应用直连数据库 读写次数、并发度流程控 制,动态变更
数据消费域
• OLAP
基础平台架构
SDK: H5/iOS/Android…
用户接入
秒级监控/精准推荐/多 维分析/…
数据产品
OLAP
TDF:配置/日志/协议 /路由/权限/容错/容灾 …
业务逻辑
OLTP
实时计 算
TRC
离线计 算
TDW
分布式存储
TDSQL/…
HDFS/HBase/…
分布式存储
资源调度
TDSQL
面向关键数据的解决方案
数据存储&访问 故障隔离&恢复 容量伸缩 数据安全 …
SDK: H5/iOS/Android…
用户接入
TDF:配置/日志/协议 /路由/权限/容错/容灾 …
业务逻辑
分布式存储
TDSQL
TDSQL总体架构
Gaia
scheduler Scheduler
1、保存DDL任务,并在DB上执行; 2、保存实例/表状态,生成容量伸缩任务; 3、控制Set内的主备切换; 4、多scheduler通过zk选举容灾; …
业界方案-奇虎:Atlas
基于MySQL协议的数据中间层 主要功能:
读写分离 从库负载均衡 IP过滤 自动分表 自动摘除宕机的DB
业界方案-腾讯:CDB
为第三方开发人员提供的DB 存储解决方案 主要特点
DBaas,即申请即使用 通过Mysql客户端和API直接访 问和管理Mysql实例,无需改 造代码 master/slave切换后Mysql实例 的IP/Port不变,应用层无需修 改配置 提供master-slave热备,定时 冷备服务 支持“一键式”扩容
通过MySQL ClientAPI访问,完 全兼容
可视化操作,可查看 实时运营状态、统计 报表
一切还像原来,只是
更加简单
用户接入
注册账户
• 管理台:标识逻辑 表空间
创建Table
• MySQL Client命令 行
使用DB
• MySQL Client API • MySQL Client 命 令行
网络出带宽管理
结合linux Cgroups和HTB 采用borrow机制,充分利用共享带宽资源
网络入带宽管理
自主知识产权,通过修改Linux内核实现,实现精准而弹性,高效率低损耗的入带宽隔离。
• • •
专利2013107167896 基于令牌桶的数据传输流量调度方法及其系统 专利201310743471.7 通过接收端主机标记ECN进行网络入流量限速的方法 专利2013107175144 根据令牌桶的水位调整TCP通告窗口的网络入流量主动限速方法
10
Gaia-资源调度器优化 – sfair调度器
Resource Manager
ScheduleThread
RM Scheduler
3. Launch container
AppPool
Match 2. Select an app
NodePool
1. Heartbeat
NodeManager
NodeManager
Node
Gaia
Standby RM Active RM Cluster State Application State
Node
Container NodeManager MR AM Container
Node
Storm AM Container NodeManager
Spark AM
资源利用率高
node
node
node
node
node
主要用于:负载调度、灰度实验、沙箱验证、现网引流等
TAM应用管理-跨城部署
NodeManager
Container
Container
Container
Container
Container
Container
• 心跳处理与调度解耦和:单集群规模扩展至1w个节点 • 控制多线程间的同步:优化线程间锁,将调度线程持锁时间减少70% • 优化队列和作业排序:取消全排序,采用堆排序,减少了调度器80%的CPU时间 • 降低调度开销:对无资源需求的app/queue,禁止其参与调度
业界方案对比
项目 用户接口 功能 一致性 容错 容灾 容量伸缩 建表 监控 数据导入 离线统计分析 CDB 分库分表 Mysql兼容 不严格保障 主备;自动切换 跨IDC 半手工/一键扩容 预分表/手工 分钟 手工 不支持 TDDL 单表 Mysql兼容 不严格保障 主备;自动切换 跨IDC 半手工 预分表/手工 分钟 手工 不支持 Atlas 单表 Mysql兼容 不严格保障 主备;自动切换 跨IDC 半手工 预分表/手工 分钟 手工 不支持