海量用户数据处理及其在一淘广告和推荐中的应用
DESCRIPTION
#LAMP人#第14期《海量数据挖掘与应用 – e淘专场》 之 《海量用户数据处理及其在一淘广告和推荐中的应用》- 夏辉(赤霞)TRANSCRIPT
+
海量用户数据处理及其在一淘广告和推荐中的应用
2012-04-16 一淘
+
第14期: 《海量数据挖掘与应用 》- e淘专场 www.LAMPER.cn http://weibo.com/lampercn
+ 个性化的广告
+ Etao推荐
+ 主要的挑战
每天新增几十亿条+的Log,几TB的数据
需要处理3个月甚至更多的数据
复杂的离线算法模型处理
准实时的轻量快速算法数据更新
高并发,高容量,快速响应的实时对外服务
+ 架构
+ 海量数据分析-离线处理
2000+ node hadoop集群
20000+Map ,10000+reduce计算资源
存储容量PB级别
高可用性,很好的扩展性,方便管理运维
实效性不好,每天1次或者每小时1次的离线处理
+ 如何有效降低数据的延迟?
Map-Reduce
Stream Processing
+ 流上的数据处理
TimeTunnel
Storm
+ TimeTunnel
TT(TimeTunnel)是一个企业消息交换平台,提供可靠的、高效的、安全的消息交换服务。TT遵循AMQP(Advanced
Message Queue Protocol)协议,基于TT可以搭建消息系统、日志收集系统、实时计算框架。
特点
灵活配置的日志收集方案无需编写脚本
实时高可靠收集日志
高性能的分布式消息队列
完善的监控体系和错误自动恢复机制
+ TimeTunnel
+ 使用TT来做实时计算
+ TT做实时计算的不足
计算能力的扩展性
不适合复杂业务逻辑
编码比较复杂
+ TimeTunnel
目前TT已经开源
http://code.taobao.org/p/TimeTunnel/src/
类似的开源项目
Facebook的scribe
Cloudera的flume
Linkedin的Kafka
+ Storm
流计算
分布式RPC
持续计算
Twitter https://github.com/nathanmarz/storm/
类似项目
Yahoo的s4
Facebook的puma(尚未开源)
+ Storm的特点
水平扩展,并行计算,动态增删节点
可靠的消息处理
事务机制,解决重复计算问题
容错性
+ Storm
Nimbus: 主控节点,用于任务
分配,集群任务监控等,与hadoop Jobtracker类似
Zookeeper:集群中协调,共有
数据的存放(如心跳信息)
Supervisor:对应一台物理机,
用于启动worker,类似hadoop的task tracker。
Worker:工作进程,负责启动
task,以及通过zeromq 进行tuple的分发,与接收。
Task:工作线程,任务的处理。
+ Storm-Concept
Tuple
Stream
Spout
Bolt
Topology
+ Storm-Tuple
一个tuple表示流中一个基本的处理单元,例如一条访问日志,它可以包括多个field,每个field表示一个属性
Field 1 Field 2 Field 3 Field 4
+ Storm-Stream
一个没有边界的连续的tuples
他们在分布式的系统中可以被并行的处理与创建,但不保证处理顺序
+ Storm-spout
类似hadoop的map。Spout是一个stream的源头。通常spout会从外部数据源读取数据并发送tuple到stream。
Kestrel queue
kafka spout
TT spout
+ Storm-Bolt
处理输入的流并产生新的输出流.
Bolt可以用来做简单的stream转换,复杂的流处理/转换一般会分解为多步完成,所以会使用多个bolt级联起来,每个bolt完成一些较简单的功能
一个bolt可以产生多个输出流。
类似hadoop reduce,而且可以bolt后可以继续有其他的bolt
+ Storm- Topology
由spout和bolt构成的网状图
实时处理程序在逻辑上构成一个storm的拓扑
Storm 拓扑与传统任务的区别:
storm拓扑不终止的,除非被杀死,它一直运行
+ Storm-Task
每个Spout和bolt都作为很多task在集群中运行
每个task对应OS中的一个线程
Stream groupings定义如何把tuple从一个task发向另一个task
+ Storm
+ 数据的存储
HDFS
Hbase
OceanBase/Tair
+ Tair
+ Tair-DataServer
+ TaoCode
http://Code.taobao.org
Tair
TT
OceanBase
Tengine(taobao定制版本的nginx)
…..