【笔记】大数据技术之流计算Storm(十)

流计算

  • 流数据:数据以大量、快速、时变为主要特点
    • 需要实时的处理
    • 流式数据->点击流数据->实时跟踪分析->迅速给出相关分析
    • 特征:快速,无尽、来源众多、数据量大、注重数据整体价值、数据颠倒不完整等
  • 静态数据:例如数据仓库中的数据
  • 动态数据:(流数据)

概念

  • 流计算:实时获取来自不同数据源的海量数据经过实时分析处理获取有价值信息
  • 数据的价值随时间的推迟而降低
  • 系统要求
    • 高性能
    • 海量式
    • 实时性
    • 分布式
    • 易用性
    • 可靠性
  • 开源六计算框架
    • Strom
    • S4
    • Dstream

处理流程

  • 数据实时采集->数据实时计算->实时查询服务
  • 分布式日志采集:
    • scribe
    • kafka
    • flume
  • 采集系统基本框架
    • Agent:主动采集数据,把数据推出送到Collector
    • Collector:接受多个Agent数据并进行有序可靠高性能的转发
    • Store:存储Collector转发过来的数据
  • 数据实时计算是对采集数据进行实时分析和计算并反馈实时结果

应用

  • 传统的应用分析:用户主动发起查询,延时导致很难保证结果实时性
  • 实时交通
  • 广告推送

Storm

  • 支持多种编程语言
  • 方便于现有的数据库产品
  • 特点
    • 整合性:
    • 具有简易API
    • 可扩展性
    • 可靠的消息处理
    • 支持各种编程语言
    • 快速部署
    • 免费开源
设计思想
  • Stream
    • 流数据Stream描述成为一个无界的Tuple序列
    • Tuple:Key-Value的Map
  • Spout
    • Stream的源头
    • 从外部数据源读取数据,然后封装成Tuple发送到Stream
  • Bolt:处理Tuple,创建新Stream(被动)
    • 将Streams的状态过程抽象为Bolt
    • 处理Tuple、处理后的Tuple作为新的Stream发送给其他Bolt
    • 可以执行过滤操作、函数操作、Join、操作数据等任何操作
  • Topology
    • Spout->Bolt->Bolt<-Bolt<-Spout->Bolt->Bolt
    • 图,比如描述上面的关系
  • 分组方式
    • ShuffleGrouping:随机分组,随即分发Stream中Tuple,保证每个Bolt的Task接受Tuple数据大量大致相同
    • FieldsGrouping:按照字段分组
    • GlobalGrouping:全局分组,所有Tuple都发送到tongyigeTask
    • DirectGrouping:直接分组,直接指定由某个Task来执行Tuple的处理
    • NonGrouping:不分组
    • AllGroup:广播发送
框架设计
Storm
  • 与Hadoop架构组件对应关系
    在这里插入图片描述

  • Topology将持续处理消息(直到人为终止)而MapReduce在完成计算任务后会停止

  • 采用"Master-Worker"结点

  • 架构示意图

  • Nimbus->Zookeeper->Supervisor{Worker进程}

  • Storm工作流程
    在这里插入图片描述

Spark Streaming
  • 批处理的实时计算框架
  • 独特的RDD设计方式
  • 可以整合多种数据源:Kafka…
  • 对较短时间的时间片进行批处理
  • 离散化数据流,模拟连续不断的数据流
Samze
  • 作业:输入流进行处理转化
  • 分区:是一条条消息,每一个流都会被分成多个分区
三种框架对比
  • Samza
    在这里插入图片描述

  • 具体
    在这里插入图片描述

实际操作

实验室传送门

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值