海量数据计算架构实现

13
海量数据的准实时访问与处理 Behavioral Targeting System Architecture 范昂 2012/5/16

Upload: shaoning-pan

Post on 02-Jul-2015

1.552 views

Category:

Technology


0 download

DESCRIPTION

《海量数据计算架构实现》介绍:分享Yoyi Behavioral Targeting系统架构与实践。如何在高并发、低延迟的应用场景实现大数据的准实时处理以及如何在每天超过30亿RTB请求的应用中实现实时的用户分类、用户定向。嘉宾:范昂

TRANSCRIPT

Page 1: 海量数据计算架构实现

海量数据的准实时访问与处理

Behavioral Targeting System

Architecture范昂

2012/5/16

Page 2: 海量数据计算架构实现

第15期:

《Technology Changes 》-悠易互通专场

www.LAMPER.cn

http://weibo.com/lampercn

Page 3: 海量数据计算架构实现

• 数据量大

10 ~30亿网页,10亿cookie

• 读写吞吐率高

每天30亿+竞价请求、浏览记录更新、4000万+网页更新、百万次兴趣更新

• 低延迟

60ms内完成预测、竞价、定向、频次控制、浏览记录更新….

• 高并发

平均3.5万、峰值14万查询请求,更新请求…

• 高可用

7x24小时运转

• 复杂的报表和数据分析

结案报告,人群属性报告、广告效果报告、数据挖掘….

BT系统面临的挑战

Page 4: 海量数据计算架构实现

• 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理论的角度来看数据系统的选择

Page 5: 海量数据计算架构实现

系统架构从系统架构的角度看数据系统的选择

Page 6: 海量数据计算架构实现

Insert

Delete

UpdateGet

Scan Column Oriented

Document Based

Key/Value

数据模型从数据模型的视角来看存储系统的选择

Page 7: 海量数据计算架构实现

在线数据

离线数据

报表数据

网页抓取

日志处

浏览更

兴趣计算

数据分析

数据训

..

数据抽取 • 写多读少

• 更新快

• 读取慢

• 强一致性

• K/V

• 扫描

• 读多写少

• 低延迟

• 高并发

• 高可用

• 最终一致性

• K/V操作

• 读多写少

• 复杂查询

• 高延迟

• 数据量小

• 关系型

消息总线

Page 8: 海量数据计算架构实现

• 任务分发

将处理任务/消息均衡的分发到不同的工作节点

• 提高实时性

实时投递,减少任务的等待和延迟,在任务不产生堆积的情况下近似流处理

的能力

• 缓冲数据

在线数据系统原则上是AP的系统,而离线数据系统基本是CP的系统;因此总

线应可以缓存任务,从而弥补离线数据系统因各种原因导致的服务中断的能

• 服务解耦

生产者、消费者模型,解耦服务,增加系统的弹性

消息总线为什么使用消息总线,消息总线的作用与需求

Page 9: 海量数据计算架构实现

协调服务

worker

生产者

消费者

生产者

消费者

workerworker

worker worker

2.注册/注销

1.注册/注销

3.消费者列表

Backup

Page 10: 海量数据计算架构实现

• 快速的插入更新操作

<1ms

• 较慢的数据随机读取

60~200ms

• 高速的数据扫描分析

>1亿条/分钟

经验:

小心rowkey的设计、规划region、可控的compaction、充分利用range

scan、多键值范围查询、coprocessor和MapReduce

离线数据系统离线数据系统以Hbase和Hadoop为基础

Page 11: 海量数据计算架构实现

在线数据系统自主开发的容器服务器

• 数据就是计算

让数据节点参与计算,在离数据最近的地方计算

• 充分利用计算资源、存储资源和IO资源

以服务或进程为单位进行部署,而不是服务器,建立software stack,而不是

server stack

Page 12: 海量数据计算架构实现

• 实时性1.任务/消息实时投递分发,提高工作流程的实时性,整体流程可以在数秒内完成

2.采用列存数据管理系统提高数据更新的实时性(<1ms)

3.采用前端计算和数据合一的容器服务器在数据节点计算,使得数据读取在5ms内完成

• 高可用、可扩展1.容器服务器存储,采用有组织的P2P架构,提高系统的可用性和吞吐率

2.采用一致性hash做数据分片和冗余,达到高扩展的目的

• 大数据1.在线数据 10亿 cookies,30亿网页,约 10T

2.离线数据包含原始数据约30T

3.每天产生日志数据约1T

总结BT系统准实时大数据处理架构方法

Page 13: 海量数据计算架构实现

谢 谢!