博客
关于我
【笔记】大数据技术之流计算Storm(十)
阅读量:324 次
发布时间:2019-03-04

本文共 1337 字,大约阅读时间需要 4 分钟。

流计算

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

概念

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

    在这里插入图片描述

  • 具体

    在这里插入图片描述

实际操作

转载地址:http://veoh.baihongyu.com/

你可能感兴趣的文章
android 用action拦截打电话界面
查看>>
android中getLocationInWindow 和 getLocationOnScreen的区别
查看>>
Android onSaveInstanceState()和onRestoreInstanceState()调用时机
查看>>
错误: 编码GBK的不可映射字符
查看>>
linux文件的权限 –rwxr-xr-x是什么意思,怎样变更文件夹以及下面所有文件的拥有者。
查看>>
html img点击跳转网页
查看>>
Python-Url编码和解码
查看>>
windows环境下生成ssh keys
查看>>
2019年一个程序员的回顾与成长计划
查看>>
vue 双项绑定的实例 货币转换
查看>>
vue if else用法。
查看>>
vue 官方实例教程 markdown demo
查看>>
Python数据类型 列表、元组、集合、字典的区别和相互转换
查看>>
宝塔配置404 502页面
查看>>
Mac OS X 下 su 命令提示 sorry 的解决方法
查看>>
vue-router 缓存路由组件对象
查看>>
js中事件捕获和事件冒泡(事件流)
查看>>
js的各种数据类型判断(in、hasOwnProperty)
查看>>
严格模式、混杂模式与怪异模式
查看>>
一篇文章带你搞定 Java 中字符流的基本操作(Write / Read)
查看>>