海量数据计算架构实现
DESCRIPTION
《海量数据计算架构实现》介绍:分享Yoyi Behavioral Targeting系统架构与实践。如何在高并发、低延迟的应用场景实现大数据的准实时处理以及如何在每天超过30亿RTB请求的应用中实现实时的用户分类、用户定向。嘉宾:范昂TRANSCRIPT
海量数据的准实时访问与处理
Behavioral Targeting System
Architecture范昂
2012/5/16
• 数据量大
10 ~30亿网页,10亿cookie
• 读写吞吐率高
每天30亿+竞价请求、浏览记录更新、4000万+网页更新、百万次兴趣更新
• 低延迟
60ms内完成预测、竞价、定向、频次控制、浏览记录更新….
• 高并发
平均3.5万、峰值14万查询请求,更新请求…
• 高可用
7x24小时运转
• 复杂的报表和数据分析
结案报告,人群属性报告、广告效果报告、数据挖掘….
BT系统面临的挑战
• Consistency ,means all nodes see the same data at the same time•Availability ,a guarantee that every request receives a response about whether it was successful or failed•Partition tolerance ,the system continues to operate despite arbitrary message loss
CAP 理论从CAP理论的角度来看数据系统的选择
系统架构从系统架构的角度看数据系统的选择
Insert
Delete
UpdateGet
Scan Column Oriented
Document Based
Key/Value
数据模型从数据模型的视角来看存储系统的选择
在线数据
离线数据
报表数据
网页抓取
日志处
理
浏览更
新
兴趣计算
数据分析
数据训
练
…
..
数据抽取 • 写多读少
• 更新快
• 读取慢
• 强一致性
• K/V
• 扫描
• 读多写少
• 低延迟
• 高并发
• 高可用
• 最终一致性
• K/V操作
• 读多写少
• 复杂查询
• 高延迟
• 数据量小
• 关系型
消息总线
• 任务分发
将处理任务/消息均衡的分发到不同的工作节点
• 提高实时性
实时投递,减少任务的等待和延迟,在任务不产生堆积的情况下近似流处理
的能力
• 缓冲数据
在线数据系统原则上是AP的系统,而离线数据系统基本是CP的系统;因此总
线应可以缓存任务,从而弥补离线数据系统因各种原因导致的服务中断的能
力
• 服务解耦
生产者、消费者模型,解耦服务,增加系统的弹性
消息总线为什么使用消息总线,消息总线的作用与需求
协调服务
worker
生产者
消费者
生产者
消费者
workerworker
worker worker
2.注册/注销
1.注册/注销
3.消费者列表
Backup
• 快速的插入更新操作
<1ms
• 较慢的数据随机读取
60~200ms
• 高速的数据扫描分析
>1亿条/分钟
经验:
小心rowkey的设计、规划region、可控的compaction、充分利用range
scan、多键值范围查询、coprocessor和MapReduce
离线数据系统离线数据系统以Hbase和Hadoop为基础
在线数据系统自主开发的容器服务器
• 数据就是计算
让数据节点参与计算,在离数据最近的地方计算
• 充分利用计算资源、存储资源和IO资源
以服务或进程为单位进行部署,而不是服务器,建立software stack,而不是
server stack
• 实时性1.任务/消息实时投递分发,提高工作流程的实时性,整体流程可以在数秒内完成
2.采用列存数据管理系统提高数据更新的实时性(<1ms)
3.采用前端计算和数据合一的容器服务器在数据节点计算,使得数据读取在5ms内完成
• 高可用、可扩展1.容器服务器存储,采用有组织的P2P架构,提高系统的可用性和吞吐率
2.采用一致性hash做数据分片和冗余,达到高扩展的目的
• 大数据1.在线数据 10亿 cookies,30亿网页,约 10T
2.离线数据包含原始数据约30T
3.每天产生日志数据约1T
总结BT系统准实时大数据处理架构方法
谢 谢!