分布式大数据处理系统概览(三)

  本博文主要对现如今分布式大数据处理系统进行概括整理,相关课程为华东师范大学数据科学与工程学院《大数据处理系统》,参考大夏学堂,下面主要整理HDFS/MapReduce/Spark/Yarn/Zookeeper/Storm/SparkStreaming/Lambda/DataFlow/Flink/Giraph有关的内容。


分布式大数据处理系统大纲

  • 分布式大数据处理系统概览(一):HDFS/MapReduce/Spark
  • 分布式大数据处理系统概览(二):Yarn/Zookeeper
  • 分布式大数据处理系统概览(三):Storm/SparkStreaming
  • 分布式大数据处理系统概览(四):Lambda/DataFlow/Flink/Giraph

8 流计算系统Storm

8.1 Storm设计模式:

(1)Storm流数据的特征:
# 数据快速持续到达;
# 数据来源众多,格式复杂;
# 数据量大;
# 注重数据整体价值;
# 数据顺序颠倒,或不完整,系统无法控制将要处理新到达的数据元素的顺序
(2)Storm数据类型:Tuple元组,逻辑上看类似于关系数据库中的一行记录;
(3)Storm逻辑计算类型:Topology流转换图,任务的抽象概念:
# 顶点:Spout或Bolt表示计算组件;Spout表示源头,从外部数据中读取数据,封装成tuple;Bolt描述流转换过程,将处理后的tuple转发给其他Bolt
# 边:表示数据流向(数据从上一个组件流向下一个组件)

8.2 Storm系统架构

(1)Nimbus:主节点,负责分发代码,分配任务,检测故障,是调度中心;
(2)Supervisor:从节点,负责执行任务,
(3)Work:任务执行进程,一个从节点可拥有一个或多个Work;
(4)Zookeeper:负责主从节点之间的协调工作;
(5)executor:产生于Work进程内部的线程,可以执行同一个组件中一个或多个任务

8.3 Storm运行流程:

(1)用户编写Topology程序,经过序列化,打包提交给主节点;
(2)主节点创建一个配置信息,并写入Znode中;
(3)所有从节点监听Znode,获得所在节点所需执行的任务;
(4)从节点从主节点处拉取可执行代码,并启动若干work进程;
(5)work进程根据zookeeper获取的配置信息,启动若干线程,执行Spolt和Bolt所描述的task任务

8.4 Storm Grouping策略:Spout和Bolt之间,或者不同的Bolt之间的Tuple传输表现为属于上游组件的task和属于下游组件的task之间的Tuple传输。Grouping策略解决两个组件之间如何进行tuple传输:

8.4 Storm容错:

(1)元组树:Spout发射的每一个tuple,会被后续的Bolt进行处理,编号记为Spout-Tuple-id。每一个tuple可抽象为一个树;
(2)元组树的Tuple的传输表现为不同组件之间task的消息传递,每一个消息传递编号记为Message-id;
(3)ACK机制:
# acker:一个单独的线程,来追踪tuple的处理过程。acker线程数量可以设置。
# 上游组件的Task发射消息的同时,会向Acker报告Message-id及Spout-Tuple-id;当下游组件的Task接收到消息时向Acker报告Message-id及Spout-Tuple-id
# 每一个Tuple在Spout中生成的时候,都会分配到一个64位的message-Id。通过对message-Id进行哈希我们可以执行要对哪个acker线程发送消息来通知它监听这个Tuple。acker线程收到消息后,会将发出消息的Spout和那个message-Id绑定起来。然后开始跟踪该tuple的处理流程。如果这个tuple全部都处理完,那么acker线程就会调用发起这个tuple的那个spout实例的ack()方法。如果超过一定时间这个tuple还没处理完,那么acker线程就会调用对应spout的fail()方法,通知spout消息处理失败。spout组件就可以重新发送这个tuple(可能会导致消息重复)。
# acker数据结构及原理(STid指Spout-Tuple-id,保持不变,Mid指Message-id,ack_val表示当前的状态值):

9 流计算系统Spark Streaming

9.1 Spark Streaming

(1)数据模型:
# Storm中将流数据视为一系列连续的元组;Spark Streaming将连续的流数据切片(离散化),生成一系列小块数据

# 根据用户指定的时间间隔对数据进行切割
# Stream维护一系列的RDD信息
(2)逻辑计算模型:OperateDAG以及DStream LIneage机制
(3)物理计算模型:

(4)Spark Streaming架构
# Driver:构造StreamingContext用于管理流计算的元数据;
# Executor:执行单个或多个任务,其中身份为Receiver的某些task负责从外部数据源源源不断的获取流数据;

9.2 Spark Streaming工作原理

(1)Spark Streaming提供了一种高级的抽象,叫做DStream,英文全称为Discretized Stream,中文翻译为“离散流”,它代表了一个持续不断的数据流。DStream可以通过输入数据源来创建,比如Kafka、Flume、ZMQ和Kinesis;也可以通过对其他DStream应用高阶函数来创建,比如map、reduce、join、window;
(2)由用户确定的时间片作为拆分数据的依据,划分为多个Batch,并转化为DStream,每个DStream包含时间顺序的RDD序列;
(3)Transform:允许用户在每个DStream的每个RDD上执行操作;
(4)窗口操作:
# 窗口长度:窗口持续的时间,必须为划分batch时间片的整数倍;
# 滑动间隔:窗口操作的时间间隔,必须为划分batch时间片的整数倍;
# 窗口操作的应用:统计过去一定时间内操作记录,如图:每当窗口滑过DStream时,落在窗口内的源RDD被组合并被执行操作以产生windowed DStream的RDD,窗口长度为3个时间单位,滑动间隔为2个时间单位,因此表示每2个时间单位计算过去3个时间内的数据
# 窗口类型:滑动窗口、滚动窗口、跳跃窗口

9.3 Spark Streaming容错

(1)Executor(Work)故障:
# 不含Receiver:Spark基于RDD的容错机制
(2)含Receiver和Driver故障:
# 日志:Receiver、Driver日志
# 检查点Checkpoint:数据检查点:将状态转换操作生成的RDD周期性的写入检查点;元数据:包括配置信息、未完成的batch信息、DStream操作信息
(3)故障恢复:
(4)容错语义分类:
# At most once(最多一次)。每条数据记录最多被处理一次,潜台词也表明数据会有丢失(没被处理掉)的可能。
# At least once(最少一次)。每条数据记录至少被处理一次。这个比上一点强的地方在于这里至少保证数据不会丢,至少被处理过,唯一不足之处在于数据可能会被重复处理。
# Exactly once(恰好一次)。每条数据记录正好被处理一次。没有数据丢失,也没有重复的数据处理。这一点是3个语义里要求最高的。
(5)Spark Streaming容错语义:


分布式大数据处理系统大纲

  • 分布式大数据处理系统概览(一):HDFS/MapReduce/Spark
  • 分布式大数据处理系统概览(二):Yarn/Zookeeper
  • 分布式大数据处理系统概览(三):Storm/SparkStreaming
  • 分布式大数据处理系统概览(四):Lambda/DataFlow/Flink/Giraph

  博客记录着学习的脚步,分享着最新的技术,非常感谢您的阅读,本博客将不断进行更新,希望能够给您在技术上带来帮助。喜欢请关注+点赞o( ̄▽ ̄)d

分布式大数据系统概览(HDFS/MapReduce/Spark/Yarn/Zookeeper/Storm/SparkStreaming/Lambda/DataFlow/Flink/Giraph)相关推荐

  1. 大数据知识面试题-MapReduce和YARN(2022版)

    序列号 内容 链接 1 大数据知识面试题-通用(2022版) https://blog.csdn.net/qq_43061290/article/details/124819089 2 大数据知识面试 ...

  2. 【2016年第4期】分布式协商:建立稳固分布式 大数据系统的基石

    陈康1,2,3,黄剑1,刘建楠4 1. 清华信息科学与技术国家实验室(筹),清华大学计算机科学与技术系,北京 100084: 2. 深圳清华大学研究院,广东 深圳 518057:3. 天津大学计算机科 ...

  3. 大数据Hadoop原理学习(HDFS,MAPREDUCE,YARN)

    hadoop hadoop中有3个核心组件: 分布式文件系统:HDFS -- 实现将文件分布式存储在很多的服务器上 分布式运算编程框架:MAPREDUCE -- 实现在很多机器上分布式并行运算 分布式 ...

  4. 【Hadoop快速入门】Hdfs、MapReduce、Yarn

    1. Hahoop概述 1.1 Hodoop是什么 1) Hadoop是一个有Apache基金会所开发的分布式系统基础架构 2) 主要解决海量数据的存储和海量数据的分析计算问题 3) 广义上来说,Ha ...

  5. 什么是Hadoop - HDFS - MapReduce - YARN - HA

    Hadoop 为什么要有Hadoop? 从计算机诞生到现今,积累了海量的数据,这些海量的数据有结构化.半结构化.非 结构的数据,并且这些海量的数据存储和检索就成为了一大问题. 我们都知道大数据技术难题 ...

  6. Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化...

    转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...

  7. 高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南

    原文:http://my.oschina.net/wstone/blog/365010#OSC_h3_13 (WJW)高可用,完全分布式Hadoop集群HDFS和MapReduce安装配置指南 [X] ...

  8. 浅显易懂入门大数据系列:二、MapReduce、YARN(超详细)

    文章目录 一.MapReduce概念及架构 MapReduce的定义 MapReduce的特点 MapReduce的架构 二.YARN的背景及架构 产生YARN的背景 YARN的架构 三.YARN的调 ...

  9. hdfs、MapReduce、yarn、hive、sqoop、HBASE、Redis、kafka、ES

    目录 大数据开发复习课程 1.Hadoop 1.1.介绍Hadoop 1.2.Hadoop特性优点 1.3.hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么? 1.4.Hadoo ...

最新文章

  1. 小学计算机知识讲课,小学信息技术说课稿《走进计算机》
  2. latex不能识别eps图片
  3. C语言访问MYSQL数据库的完整的代码例子
  4. 用SRS和FFMPEG进行直播流转码
  5. SpringMVC源码阅读:过滤器
  6. 计算机课四年级说课稿,小学信息技术说课稿
  7. java web视频_超全面的JavaWeb视频教程
  8. 【解析】1013 Battle Over Cities (25 分)_31行代码AC
  9. 以太网,局域网,万维网
  10. java 8 java demo_Java 8 中的 Streams API Demo
  11. [spring boot]idea中实现热部署的方法
  12. 画布上涂鸦功能(可橡皮擦、可清除)
  13. apache+weblogic获取客户端访问的真正ip
  14. POI 实现Word替换书签
  15. atmega328p 设置熔丝位,atmega328p 刷机
  16. jmeter录制postman脚本
  17. python控制EnergyPlus方法(linux)
  18. 关于文章关键字词云的生成
  19. 6章7街构造函数和解析函数
  20. 智能体:华为给时代炼一炉钢

热门文章

  1. 群晖之frp内网穿透
  2. 关于一级分类和二级分类
  3. java方式获取网络时间(国家标准时间)
  4. 基于MATLAB控制系统辨识系列3-梯度矫正参数估计法
  5. 【活动公告】Hackathon —— 腾讯云AI API接入迷你赛
  6. 复习Java.Lang包Java面试题Vector、ArrayList、LinkedList区别生活【记录一个咸鱼大学生三个月的奋进生活】007
  7. 对URL中的参数进行简单加密处理
  8. vocabularies181126
  9. Micron 24 Gbps GDDR6X memory for GeForce RTX 40 series is now in production 【搬运外媒VedioCardz报道(手工翻译)】
  10. 动态规划从入门到提升详解