一、Spark Streamming 是基于spark流式处理引擎,基本原理是将实时输入的数据以时间片(秒级)为单位进行拆分,然后经过spark引擎以类似批处理的方式处理每个时间片数据。

二、SparkStreamming作业流程

  1、客户端提交作业后,启动Driver(Driver是spark作业的Master)

  2、每个作业包含多个Excutor,每个Excutor都是以进程的方式运行Task,Spark Streamming至少包含一个Receiver task.

  3、Receiver收到数据后生存Block,并把Block汇报给Driver,然后备份另外一个Excutor上面。

  4、Receiver Tracker维护Receiver汇报的BlockId.

  5、Driver定时自动JobGernerator,根据DS的关系生成逻辑RDD,然后创建jobSet,交给JobSchedule。

  6、JobSchedule负责调度jobset,交给DAGSchedule, DAG Schedule根据逻辑RDD,生成对应的stages,每一个Stage包含一个或者多个Task。

  7、Task Schedule负责吧Task调度到Excutor上,并维护Task的运行状态。

  8、当Task,Stages, jobSet完成后,单个batch才算完成。

三、spark Streamming和Storm

  流式系统的特点

    低延迟,秒级或者更短的时间。

    高性能。

    分布式

    可扩展,伴随着业务发展,数据量,计算量可能会越来越大,所以要求是可扩展的。

    容错,分布式系统中的通用问题,一个节点挂了不能影响应用。

    

  两者之间区别

    同一套系统,安装spark之后,一切都有了。

    spark有较强的容错能力,storm使用更广泛,更稳定。

    storm是使用Clojure语言去写的,它的很多扩展都是使用Java完成的。

    任务执行方面与storm的区别。

      spark streamming 数据进来是一小段的RDD,数据进行切分成一小块,一小块进行批处理。

      Storm是基于record形式来的,进来的是一个个的Tuple,进来一条就会处理一条。

    中间过程实质上就是spark引擎,只不是spark streamming在spark之后引擎动了一些手脚,对进入spark引擎之前的数据进行了一个封装,方便进行基于时间片的小批量作业,交给spark进行计算。

sparkStreamming原理的更多相关文章

  1. 奇异值分解(SVD)原理与在降维中的应用

    奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域.是 ...

  2. node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理

    一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...

  3. 线性判别分析LDA原理总结

    在主成分分析(PCA)原理总结中,我们对降维算法PCA做了总结.这里我们就对另外一种经典的降维方法线性判别分析(Linear Discriminant Analysis, 以下简称LDA)做一个总结. ...

  4. [原] KVM 虚拟化原理探究(1)— overview

    KVM 虚拟化原理探究- overview 标签(空格分隔): KVM 写在前面的话 本文不介绍kvm和qemu的基本安装操作,希望读者具有一定的KVM实践经验.同时希望借此系列博客,能够对KVM底层 ...

  5. H5单页面手势滑屏切换原理

    H5单页面手势滑屏切换是采用HTML5 触摸事件(Touch) 和 CSS3动画(Transform,Transition)来实现的,效果图如下所示,本文简单说一下其实现原理和主要思路. 1.实现原理 ...

  6. .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理

    .NET Core中间件的注册和管道的构建(1)---- 注册和构建原理 0x00 问题的产生 管道是.NET Core中非常关键的一个概念,很多重要的组件都以中间件的形式存在,包括权限管理.会话管理 ...

  7. python自动化测试(2)-自动化基本技术原理

    python自动化测试(2) 自动化基本技术原理 1   概述 在之前的文章里面提到过:做自动化的首要本领就是要会 透过现象看本质 ,落实到实际的IT工作中就是 透过界面看数据. 掌握上面的这样的本领 ...

  8. CRC、反码求和校验 原理分析

    3月份开始从客户端转后台,算是幸运的进入全栈工程师的修炼阶段.这段时间一边是老项目的客户端加服务器两边的维护和交接,一边是新项目加加加班赶工,期间最长经历了连续工作三天只睡了四五个小时的煎熬,人生也算 ...

  9. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

随机推荐

  1. html自定义垂直导航菜单(多级导航菜单,去掉font-awesome图标,添加自己的箭头图标)

    这次在原先html自定义垂直导航菜单的基础上做了比较大的改动: 1.去掉了font-awesome图标,上级菜单右边的箭头是自己用css写的,具体参考<css三角箭头>. 2.去掉了初始化 ...

  2. 读《NoSQL精粹》前三章有感

    现在NoSQL很流行,所以买了一本这方面的书,这本书虽然很薄 156页,但是感觉的确是大师的经验之谈,对于自己经验还是很少.无法能完全能心领神会,大师所说的,就像一个人说药苦,你没吃过.再听别人描述也 ...

  3. Ural 1260 Nudnik Photographer

    Problem Description If two people were born one after another with one second difference and one of ...

  4. php之mongodb插入数据后如何返回当前插入记录ID

    <?php /** *插入记录 *参数: *$table_name:表名 *$record:记录 * *返回值: *成功:true *失败:false */ function insert($t ...

  5. React.js 小书 Lesson15 - 实战分析:评论功能(二)

    作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson15 转载请注明出处,保留原文链接和作者信息. 上一节我们构建了基本的代码框架,现在开始完善其 ...

  6. js 中 前端过滤数据到后端的方法

    第一种方法: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF- ...

  7. git本地分支关联远程分支

    问题描述: 从远程master克隆下来以后, 在本地创建wf_dev分支, 此时执行git pull 操作出现图中问题. 这是因为:本地的wf_dev分支还没有和远程的wf_dev进行关联. 执行:  ...

  8. 移动H5页面,Android手机下,input获取焦点弹出系统虚拟键盘时,挡住input解决方法

    最近在写移动端页面的时候,遇到一个问题,在Android手机下,虚拟键盘会将input框遮挡住,具体情况如下图所示: 正常页面显示  IOS端显示情况 Android端显示情况 解决方式: <t ...

  9. initBinder转换日期格式

    @Controller public class FirstController { @RequestMapping("/first") //类型转化工作一定是在真正的handle ...

  10. 【代码笔记】Java连连看项目的实现(1)——JTable 、TableModel的使用

    javax.swing.table.TableModel和javax.swing.JTable JTable .TableModel是Java里面画表格的包. TableModel:为Table提供显 ...