【2016-03-11】实时计算简介

流行框架:

Apache Storm:Twitter开源,他们有上千台机器跑Storm;

  • client端:

    • spout(数据源):puma对接mysql的binlog,swallow对接应用消息,blackhole对接流量、打点日志;

    • bolt(数据处理逻辑),有向无环图

  • Storm架构(通过zk交互):

    • nimbus(单点):任务分配、topology状态监控;

    • supervisor:管理多个worker节点,worker上跑spout和bolt;

    • worker之间通信用netty,pigeon底层也是用netty;

JStorm:Storm上的一个分支,阿里对底层做了修改;

  • nimbus HA;

  • backpressure:下游指定QPS;

  • spout多线程:

Apache Spark(spark streaming):

  • 数据源:kalfa、flume、hdfs/s3、kinesis、twitter

  • 数据:micro batch(因为rdd的原因),storm中是一条一条跑的,spark在实时性上可能不如storm,准实时,延迟秒级别以上。

数据处理单位:Discretized stream(DStream);

  • 因为micro batch,可以确保数据“处理且只处理一次”,容错性更好;

  • 可以通过spark SQL处理数据;

Twitter Heron:

  • 预计今年年中开源,与Storm接口一致;

  • task做更小粒度拆分,更易做隔离、profiling、监控

  • nimbus:只负责任务分配,不负责topology状态监控;

  • 没有worker概念(worker是多线程的),一个task就是一个thread;

  • stream manager: 相对storm更容易做back pressure

Apache Flink:

  • 像spark一样,提供了很多科学计算的框架,

  • data set批处理 、data stream流式

  • netflix个性化和推荐系统架构

  • storm:DP有60个业务在run;


目前应用场景:

  • 实时流量、实时交易额:

  • 搜索、推荐:

  • 广告

  • CTR(点击率)、广告反作弊、计费

  • 业务安全:

  • 反爬虫、反作弊:检测出来是爬虫提供一些虚假数据


你可能感兴趣的:(【2016-03-11】实时计算简介)