摘要:一、Spark Streaming 数据安全性的考虑: Executor容错方式: 1. 最简单的容错是副本方式,基于底层BlockManager副本容错,也是默认的容错方式。 2.WAL日志方式 3. 接收到数据之后不做副本,支持数据重放,所谓重放就是支持反复读取数据。 BlockManager备
阅读全文
摘要:上篇文章详细解析了Receiver不断接收数据的过程,在Receiver接收数据的过程中会将数据的元信息发送给ReceiverTracker: 本文将详细解析ReceiverTracker的的架构设计和具体实现 本文将详细解析ReceiverTracker的的架构设计和具体实现 一、Receiver
阅读全文
摘要:原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/) 在上一篇中介绍了Receiver的整体架构和设计原理,本篇内容主要介绍Receiver在Executor中数据接收和存储过程一、Receiver启动过程回顾如图,从ReceiverTracker的start方法开始,调用launchReceivers()方法,给endpoint发送消息,e...
阅读全文
摘要:原创文章,转载请注明:转载自 周岳飞博客(http://www.cnblogs.com/zhouyf/) Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网)Spark Streaming 会按照程序设定的时间间隔不断动态生成Job来处理输入数据,这里的Job生成...
阅读全文
摘要:原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/) Spark streaming 程序需要不断接收新数据,然后进行业务逻辑处理,而用于接受数据的就是Recever。显然Receiver的正常运行对应整个Spark Streaming应用程序至关重要,如果Receiver出现异常,后面的业务逻辑就无从谈起。Spark Str...
阅读全文
摘要:原创文章,转载请注明:转载自 听风居士博客(http://www.cnblogs.com/zhouyf/) 上篇博客讨论了Spark Streaming 程序动态生成Job的过程,并留下一个疑问: JobScheduler将动态生成的Job提交,然后调用了Job对象的run方法,最后run方法的调用
阅读全文
摘要:原创文章,转载请注明:转载自 周岳飞博客(http://www.cnblogs.com/zhouyf/) Spark streaming 程序的运行过程是将DStream的操作转化成RDD的操作,Spark Streaming 和 Spark Core 的关系如下图(图片来自spark官网)Spark Streaming 会按照程序设定的时间间隔不断动态生成Job来处理输入数据,这里的Job生成...
阅读全文
摘要:1 spark streaming 程序代码实例 代码如下: [html] view plain copy object OnlineTheTop3ItemForEachCategory2DB { def main(args: Array[String]){ val conf = new Spark
阅读全文
摘要:首先,我们必须知道什么是事务及其一致性? 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性
阅读全文
摘要:1 解密Spark Streaming运行机制 上节课我们谈到了技术界的寻龙点穴。这就像过去的风水一样,每个领域都有自己的龙脉,Spark就是龙脉之所在,它的龙穴或者关键点就是SparkStreaming。这是上一节课我们非常清晰知道的结论之一。而且上一节课,我们采用了降维的方式。所谓降维的方式,是
阅读全文
摘要:1 Spark源码定制选择从Spark Streaming入手 我们从第一课就选择Spark子框架中的SparkStreaming。 那么,我们为什么要选择从SparkStreaming入手开始我们的Spark源码版本定制之路? 有下面几个方面的理由: 1)Spark大背景 Spark 最开始没有我
阅读全文
摘要:一.Spark streaming Job 架构 SparkStreaming框架会自动启动Job并每隔BatchDuration时间会自动触发Job的调用。 Spark Streaming的Job 分为两大类: 每隔BatchInterval时间片就会产生的一个个Job,这里的Job并不是Spar
阅读全文
摘要:一:TaskScheduler原理解密 1, DAGScheduler在提交TaskSet给底层调度器的时候是面向接口TaskScheduler的,这符合面向对象中依赖抽象而不依赖的原则,带来底层资源调度器的可插拔性,导致Spark可以运行的众多的资源调度器模式上,例如Standalone、Yarn
阅读全文