Spark小课堂Week2 Hello Streaming
Spark小课堂Week2 Hello Streaming
我们是怎么进行数据处理的?
- 批量方式处理
目前最常采用的是批量方式处理,指非工作时间运行,定时或者事件触发。这种方式的好处是逻辑简单,不影响联机业务,但是性能不行。
- 理想方式
对于数据处理的问题,我们的最终理想解,应该是满足业务规则正确的情况下,实时的完成处理。
- 平衡点
理想方式难度比较高,批量方式往往又不给力,我们可以在批量方式和理想方式中间,找到一个平衡点,就是流处理。
流处理
我们的理想情况是当不断有数据进来,就不断的进行处理。
这样处理未必是效率最优,所以我们可以抽象出一个Batch的概念,Batch是指以某种方式切分出了的一块块的数据。
流处理是基于Batch来处理的,而在SparkStreaming中切分Batch的依据是时间。

Batch变大,计算成本会降低,但是延时会提高,所以在流处理中有一个核心问题是需要选择最合适的Batch粒度,目标是整体的处理时间最优。
相比于批量处理,流处理下我们会碰到一些问题:
- 由于持续不断的进行处理,可能会出现瞬时流量过大的情况。
- 涉及到多个环节,环节之间可能会丢失数据。
- 因为工作时间变长,服务程序异常产生的风险也变大。
这些问题都是通过分布式技术来解决的。
所以在实际应用中,流处理一定是分布式的,从批量处理进行改造会分为下面两个步骤:
- 将每个环节的处理分布式。
- 将整块的流处理切分为非常多小块的处理。
问题:
- 我想知道流处理追求快速的代价是什么?
相比于批量处理方式,流处理可靠性会降低,并且对于算法有一定的抽象难度,所以设计和开发复杂度会提高,增加的是智力成本。
- 想知道:spark streaming 是否在计算和流数据接收上都是分布式的?
Streaming实际是包含了两个流式处理,一个是持续不断的接收数据,一个把接收完的数据持续不断的进行处理,其中接收数据采用的是主从模式,不是分布式的,只有处理数据是分布式的。
- spark平台可以处理非结构化数据和结构化数据的时候有什么不同的机制吗?配置平台上需要做什么变动?
Steaming目前在业界也已经被大量使用在非结构化的处理场景下,因为从Streaming中的数据就是对象,本身是数据无关的,对于非结构化数据,只要序列化成对象就可以处理。
关于
小课堂是在公司进行内部交流的一系列主题,偏基础,但是比较零散,持续更新中。
Spark小课堂Week2 Hello Streaming的更多相关文章
- Spark小课堂Week6 启动日志详解
Spark小课堂Week6 启动日志详解 作为分布式系统,Spark程序是非常难以使用传统方法来进行调试的,所以我们主要的武器是日志,今天会对启动日志进行一下详解. 日志详解 今天主要遍历下Strea ...
- Spark小课堂Week5 Scala初探
Spark小课堂Week5 Scala初探 Scala是java威力加强版. 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面. 方便测试方式 ...
- Spark小课堂Week1 Hello Spark
Spark小课堂Week1 Hello Spark 看到Spark这个词,你的第一印象是什么? 这是一朵"火花",官方的定义是Spark是一个高速的.通用的.分布式计算系统!!! ...
- Spark小课堂Week7 从Spark中一个例子看面向对象设计
Spark小课堂Week7 从Spark中一个例子看面向对象设计 今天我们讨论了个问题,来设计一个Spark中的常用功能. 功能描述:数据源是一切处理的源头,这次要实现下加载数据源的方法load() ...
- Spark小课堂Week4 从控制台看Spark逻辑结构
Spark小课堂Week4 从控制台看Spark逻辑结构 层级关系: 从监控控制台,我们可以看到如下关系: 一个 Job 包含 n Stage 一个 Stage 包含 n Task Job0解决什么问 ...
- Spark小课堂Week3 FirstSparkApp(Dataframe开发)
Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 使用fluent风格写法,可以减少对于中间变量的定义. 使用lamb ...
- Spark小课堂Week3 FirstSparkApp(RDD开发)
Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Qu ...
- 小课堂Week12 Clean Code Part1
小课堂Week12 Clean Code Part1 今天的主题是函数,让我们看一个函数,找一找其中的"不整洁". 我们也根据这段代码,讨论下对于整洁代码的两个重要原则. publ ...
- 小课堂Week11 会说话的代码
小课堂Week11 会说话的代码 今天主要讨论下,在编码过程中和"命名"相关的问题.因为命名方法比较自由,如果要提高可读性,我们需要尽量使其符合正规的英文语法习惯. 变量/属性 通 ...
随机推荐
- python之装饰器详解
这几天翻看python语法,看到装饰器这里着实卡了一阵,最初认为也就是个函数指针的用法,但仔细研究后发现,不止这么简单. 首先很多资料将装饰器定义为AOP的范畴,也就是Aspect Oriented ...
- IIS 之 添加绑定域名 或 设置输入IP直接访问网站
1.打开IIS,右键站点 → 编辑绑定,弹出“网站绑定”窗口,如下图: 2.点击“添加”,弹出“添加网站绑定”窗口,如下图: 注意:若想输入 IP 地址直接访问,则可以有以下两种设置任一均可: ...
- KindEditor图片上传到七牛云
自己做了一个网站,编辑器用的是KindEditor,平时会涉及到KindEditor自带的图片上传,但是服务器用的是虚拟主机,没多少空间,就一直想着把图片放在免费的云存储空间,之前看KindEdito ...
- tomcat部署应用的几种方式
接着上篇 tomcat配置详解,再来学习下如何在tomcat下部署应用 1.部署方式 第一种,最常用,直接把WAR包或者文件夹直接放到webapps目录下面,这时访问路径就是WAR包或者文件夹的名称. ...
- jboss之mod_cluster集群
本篇针对的mode_cluster版本是mod_cluster-1.2.6.Final-linux2-x64.tar.gz / mod_cluster-1.2.6.Final-windows-amd6 ...
- 自定义HBase的协处理器(Observer)
自定义一个Observer... 总共分五步: 1°.继承BaseMasterObserver (写代码 具体看博客....) 案例(当在HBase中创建表的时候在日志中有相关输出): impor ...
- Vim编辑器的常用快捷键.
Linux中的文本操作离不开Vim编辑器的使用. Vim编辑器的使用相对门槛较高.需要挺长一段时间的适应. 总结一些Vim使用过程中常用的命令(这些命令基本上都是在vim的命令模式下使用) 1.跳转到 ...
- DisableExplicitGC和Direct ByteBuffer
直接堆外内存请参见:http://blog.csdn.net/lantian0802/article/details/39257087 JVM调优请参见:http://hllvm.group.itey ...
- 【Ionic】---AngularJS扩展基本布局
目录: 标题栏 : ion-header-bar 页脚栏 : ion-footer-bar header/footer : 样式及内容 内容区 : ion-content 滚动框 : ion-scro ...
- jquery---helloworld
style.css