Discretized Streams: An Efficient and Fault-Tolerant Model for Stream Processing on Large Clusters

阅读笔记


概述:

  • 本文同样发表于2012年。提出了一种称为离散化数据流(Discretized Streams,D-Streams)的编程模型。
  • 该模型提供了一种高级函数式API,具有高度的一致性和强大的容错能力。
  • 基于Spark分布式计算框架,进行扩展实现了一个D-Stream的原型,称为Spark Streaming。

 

研究背景:

  • 许多大数据应用要求实现实时响应。
    • 社交网络应用需要在几分钟内分析出当前的热点话题。
    • 广告提供商需要针对用户对广告的点击行为进行建模并训练。
    • 服务器管理者需要在几秒内从海量日志信息中分析出服务器崩溃原因等。
  • 当前多数分布式流处理系统,都采用"record-at-a-time"的方式,即接收一条记录->更新内部状态->返回新的记录。
  • 这种方案在面临以下几方面的挑战:
    • 容错:错误恢复涉及大量的复制操作,且占用硬件资源。
    • 一致性:不同节点对数据的处理时间各不相同,需要保证计算结果的正确性
    • 同批量计算系统的统一:流式计算系统是事件驱动的,同批量计算的API大不相同,难以整合。

 

主要工作:

  • 提出了新的编程模型,离散化数据流(Discretized Streams, D-Streams)。
  • 核心思想是将流式计算看做一系列很短时间间隔内的确定的批量计算的累积。
  • 该模型的优点如下:
    • 每个记录在它来临的时间间隔内都被系统原子处理,保证了一致性。
    • 处理模型易于同批量计算系统统一起来。
    • 采用批量计算的容错处理方法,降低数据恢复代价。
  • 为了保证时间划分的粒度足够细,响应足够快,需要中间数据缓存在内存中。
  • 为了保证容错恢复的高效,数据在内存中以RDD的形式存放。
  • 在Spark系统的支持下,时间划分的粒度可以达到秒级别,这对于许多实际的大数据应用来说是足够的。
  • 基于Spark分布式计算框架扩展得到了Spark Streaming,是D-Stream的原型实现。

 

关于D-Stream:

  • 每个时间段内接收到的数据存储在集群上,构成了该时间段的输入数据集。
  • 时间段结束时,数据集通过确定性的并行操作处理,如map,reduce,groupBy等,得到新的数据集或计算结果。
  • D-Stream提供两种运算供用户构建流式计算程序。
    • 转换操作: 由父数据流产生新的数据流,生成的数据可以对各个时间段独立,也可以为所有时间段共享。这里复用了Spark提供的算如map,reduce,join等。
    • 输出操作: 将数据输出写到外部存储系统(如HDFS)中,如save,foreach。
  • 另外,D-Stream还提供了一些跨越时间区间的算子:
    • window:将过去一段时间间隔的数据汇总得到一个新的数据集
    • Incremental agggation:将过去一段时间间隔的数据按照指定的方式累加
    • Time-skewed join:对过去一段时间的数据集进行连接操作。

 

注意: D-Stream的容错机制基于RDD通过构造lineage图实现,在最初提出Spark的论文中有详细介绍,这里不再赘述。

 

实例:页面访问时间计数

实现:

pageViews = readStream("http://...", "1s")

ones = pageViews.map(event => (event.url, 1))

counts = ones.runningReduce((a, b) => a + b)

说明:

  • 首先通过HTTP协议读取事件流,生成数据集pageView。
  • 然后通过map操作将数据转换为键值对,生成ones,键为事件的url。
  • 最后通过runningReduce操作进行计数。

 

关于Spark Streaming:

  • 基于Spark运行时实现
  • 能够从网络上或定期从HDFS中读取数据流
  • 使用亚马逊EC2节点部署集群进行了简单的评测,每个节点4核15GB RAM。
    • 扩展性:使用grep和wordCount两个实际应用测试,吞吐量随借点个数增加基本呈线性增长,可扩展性良好。
    • 容错性:使用maxCount和wordCount两个应用测试,仅需几秒就能完成错误恢复。

 

知识补充


 批量计算 vs. 流式计算:

  • 大数据计算模式可分为批量计算和流式计算。
    • 批量计算:批量计算首先进行数据的存储,然后再对存储的静态数据进行集中计算。Hadoop是典型的大数据批量计算架构,由HDFS分布式文件系统负责静态数据的存储,并通过MapReduce将计算逻辑分配到各数据节点进行数据计算和价值发现。
    • 流式计算:流式计算中,无法确定数据的到来时刻和到来顺序,也无法将全部数据存储起来.因此,不再进行流式数据的存储,而是当流动的数据到来后在内存中直接进行数据的实时计算。
  • 流式计算和批量计算分别适用于不同的大数据应用场景。
    • 对于先存储后计算,实时性要求不高,同时,数据的准确性、全面性更为重要的应用场景,批量计算模式更合适;对于无需先存储,可以直接进行数据计算。
    • 实时性要求很严格,但数据的精确度要求稍微宽松的应用场景,流式计算具有明显优势。

 

 

转载于:https://www.cnblogs.com/LionHeart-Grady/p/thesis-03.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

复习计划

算法 贪心 二分 模拟 倍增 排序 sort 归并排序 插入排序 最短路 SPFA Djistra Floyd 最小生成树 kruskal prim 拓扑排序 tarjan 二分图 树的直径、树的重心 dfs序 hash 数据结构 栈 队列 单调队列 单调栈https://www.luogu.org/problem/show?pid2659 并查集 线段树 树状数组 二…

计算机应用基础分析与报告,y计算机应用基础出题分析报告.doc

y计算机应用基础出题分析报告计算机应用基础出题分析报告本次计算机应用基础抽考试题按照2011年甘肃省三校生高考考试标准,重在考查学生对windows xp和office办公软件基本概念、基本操作的掌握情况。以充分体现基础理论和实践操作相结合为主,深入浅出地将…

mysql left join join right

create table java (name varchar(255)); insert into java values (java1),(java2),(blue); create table mysql (name varchar(255)); insert into mysql values (mysql1),(mysql2),(blue); 1.join 查询 内联查询 查两个表的内才联系相同的值select * from java join mysql a…

PowerDesigner中NAME和COMMENT的互相转换,需要执行语句

原文:http://www.cnblogs.com/yelaiju/archive/2013/04/26/3044828.html由于PDM 的表中 Name 会默认Code 所以很不方便, 所以需要将 StereoType 显示到表的外面来 打开[工具]->[显示属性](英文:Display Preferences) ->Content->Table->右边面板Columns…

成都计算机中心起名,成都给宝宝起名的地方哪里好

成都给宝宝起名的地方哪里好2018-09-21每一个人都拥有一个好听大气的名字,名字作为一个人的标识,是人与人交流的代号,因此有一个好听寓意大气的名字是很关键的,名字毕竟关乎着对他人的第一印象,所以在起名字方面父母们…

20150206--JS巩固与加强4-02

20150206--JS巩固与加强4-02 五、属性遍历与删除 1、使用for…in…遍历自定义对象属性 基本语法: for…in…(主要是完成对对象的遍历) 示例代码: 运行效果: 说明:在17行代码,不能使用p1.i形式进行自定义对象…

Python安装scikit-learn包

我先是按照网上说的下载了个setuptools,然后直接用这个工具去安装,可是安装scikit-learn包的时候确老是有错误,也不知道错误是啥,所以就不用setuptools来安装了。 我直接下载了scikit-learn包的安装包,直接安装就好了,…

如何计算机械人工作量,修订后太原理工大学本科教学工作量计算办法

太原理工大学教师本科教学工作量计算办法(修订)高等学校实行工作量考核制度是进行教学管理改革的一项重要措施。实践证明,教学工作量考核的实行,有利于稳定教学秩序、提高教学质量,有利于加强师资队伍的建设与管理,有利于保证教学…

面向对象课程 - T-shirt

拿到了一件谜一样的T-shirt 吓得我赶紧捏了下hbb 转载于:https://www.cnblogs.com/andwho/p/5465165.html

java问题

Collection 和 Collections的区别? Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 你所知道的集合类都有哪些&a…

javascript学习代码

点击改变p和div元素&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head> <m…

状态开关(ToggleButton)

状态开关&#xff08;ToggleButton&#xff09;&#xff1a; 常用属性&#xff1a;isChecked&#xff08;是否被选中&#xff0c;如true&#xff09; 监听&#xff1a;1.监听方法&#xff1a;setOnCheckedChangeListener 2.监听器&#xff1a;CompoundButton.OnCheckedChangeLi…

搭建一个基于http的yum服务器

基于http的yum服务器在集群中搭建一个基于HTTP的yum服务器&#xff0c;不仅安装速度变快了许多&#xff0c;还能扩展自己定制的rpm包放入yum服务器中&#xff0c;其他服务器只需要正常使用yum install即可批量安装统一经过定制的rpm包。这篇文章对习惯使用yum的人来说&#xff…

优迈系统服务器初始化,优迈系统手机操作器服务器操作使用说明.pptx

优迈西奥手机操作器说明服务器无法连接当数据线连接后如图显示&#xff0c;表示APP功能权限已授权。若无法显示菜单有以下几种情况&#xff1a;1、手机USB 未设置调试状态2、数据线有问题3、转接头问题正常连接两个红灯都亮服务器无法连接点击右上角设置菜单&#xff0c;子菜单…

冲刺第二阶段

转载于:https://www.cnblogs.com/lixin20/p/4549338.html

微信消息推送服务器吗,消息推送

# 消息推送接入微信小程序消息推送服务&#xff0c;可以两种方式选择其一&#xff1a;# 开发者服务器接收消息推送开发者需要按照如下步骤完成&#xff1a; 填写服务器配置验证服务器地址的有效性据接口文档实现业务逻辑&#xff0c;接收消息和事件# 第一步&#xff1a;填写服务…

MVC与WebApi中的异常过滤器

一、MVC的异常过滤器 1、自定义MVC异常过滤器创建一个类&#xff0c;继承HandleErrorAttribute即可&#xff0c;如果不需要作为特性使用直接实现IExceptionFilter接口即可&#xff0c;注意&#xff0c;该接口在System.Web.Mvc 命名空间下/// <summary> /// 自定义的MVC异…

windows下eclipse远程连接hadoop集群开发mapreduce

转载请注明出处&#xff0c;谢谢2017-10-22 17:14:09之前都是用python开发maprduce程序的&#xff0c;今天试了在windows下通过eclipse java开发&#xff0c;在开发前先搭建开发环境。在此&#xff0c;总结这个过程&#xff0c;希望能够帮助有需要的朋友。用Hadoop eclipse plu…

缩放浏览器时 背景图片固定

今天遇到一个很奇怪的问题&#xff0c;页面做好后&#xff0c;当缩放浏览器的时候&#xff0c;背景图片跟着移动&#xff0c;这就使本来做好的内容看起来像是错位了一样&#xff0c;跟背景对不上。 研究了一下发现&#xff0c;不需要fixed 之类的&#xff0c;只需要给body加个 …

医学影像后处理服务器系统的特点,【CT影像系统工作站怎么用】CT影像系统工作站好不好_使用技巧-ZOL软件百科...

为满足医疗卫生领域广大影像工作者、医生和医院管理工作者的需求&#xff0c;本单位应用当代计算机技术&#xff0c;影像处理技术以及网络技术开发的 CT型医学影像工作站&#xff0c;可与各种CT配接&#xff0c;不需对原机作任何改动。实现了数字化存储和接口标准化以及网络管理…