+




    海量用户数据处理及其在一
    淘广告和推荐中的应用
    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-      Stream
        Reduce   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
   Twitter https://github.com/nathanmarz/storm/

   类似项目
       Yahoo的s4
       Facebook的puma(尚未开源)


               流计算                           持续计算

                                             分布式RPC
+
    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


      Field 1   Field 2   Field 3   Field 4




    一个tuple表示流中一个基本的处理单元,例如一条访问日志,它
    可以包括多个field,每个field表示一个属性
+
    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)

       …..
+
    Q&A

       Thanks

       http://weibo.com/grisword @淘白白

海量用户数据处理及其在一淘广告和推荐中的应用

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