大数据Hadoop、spark笔记 第四章:流计算

大数据Hadoop、spark笔记(一)-CSDN博客

第二章 spark设计与原理-CSDN博客

第三章:Spqrk应用基础-CSDN博客

第四章:流计算-CSDN博客

数据可以分为两种:静态数据和动态数据(流数据)

流数据特点:

数据来源众多,随时变化,快速持续到达,关注数据的整体价值不过分关注个体价值,数据价值随时间流逝

批量计算:充裕的时间处理静态数据,如hadoop。

          将数据存储在数据库,用户主动发出查询,得到结果

流计算:要求在秒级甚至更短的时间完成计算

        数据实时采集,数据实时计算,结果主动推送给用户,数据可能不需要存储

数据实时采集:

 

数据实时计算:

数据经流处理系统处理后的数据,可以流出给下一个环节继续处理,也可以把相关结果处理完以后就丢弃掉,或者存储到相关的存储系统当中去

开源流计算框架storm

设计思想

streams:storm将流数据描述成一个无限的tuple序列。

spout:

bolt:

每个bolt可以包含多个task(任务),每个task可以在不同的机器节点并行处理

topology:相当于hadoop里的job

topology中每个组件都是并行运行的

stream grouping:

图中每个圆圈是一个task。

spout中产出tuple后应当以何种规则分发给boltA和blotB--- stream grouping

分发规则:

ShuffleGrouping:随机分组,保证每个bolt收到的task数量大致相等

FieldsGrouping:按字段分组,保证相同字段的tuple分配到同一个task

AllGrouping:每个task收到所有tuple

GlobalGrouping:所有tuple发到同一个task

DirectGrouping:直接分组,指定摸个task执行tuple

storm工作模式:

nimbus和supervisor不直接通信,而是通过zookeeper。如果nimbus或supervisor发生故障,可以通过zookeeper保存的信息快速恢复工作

worker进程和topology是1-n的关系

每个worker进程,运行着多个executor线程(白色)

    每个executor线程运行同一个组件的若干个task。

    实际的数据处理有task完成

storm工作流程

所有Topology任务的提交必须在Storm客户端节点上进行。

Nimbus节点首先将Topology分片成一个个Task,分配给相应的Supervisor,将分配信息提交到Zookeeper集群上。

Supervisor会去Zookeeper上认领自己的Task

另外两种流计算框架:spark streaming和samaza

spark streaming:

spark是面向批处理的框架,将实时输入数据以时间片为单位拆分(拆分后称为Dstream---离散化数据流)并处理(RDD操作),以此实现流数据的处理

优点:1、容错性强于storm

           2、兼容批量和实时数据处理的算法,方便了需要历史数据和实时数据联合分析的应用场合

缺点:1、离散化数据流终究不是真正的数据流,响应速度慢与storm

samaza:

对于大量流数据的处理能力强于另外两种框架

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值