摘要: 在 spark 源码分析之二 -- SparkContext 的初始化过程 中,第 14 步 和 16 步分别描述了 TaskScheduler的 初始化 和 启动过程。 话分两头,先说 TaskScheduler的初始化过程 TaskScheduler的实例化 其调用了org.apache.spa 阅读全文
posted @ 2019-07-02 20:05 JohnnyBai 阅读(1431) 评论(0) 推荐(0) 编辑
摘要: LiveListenerBus 官方说明如下: Asynchronously passes SparkListenerEvents to registered SparkListeners. 即它的功能是异步地将SparkListenerEvent传递给已经注册的SparkListener,这种异步 阅读全文
posted @ 2019-07-01 23:35 JohnnyBai 阅读(1338) 评论(0) 推荐(1) 编辑
摘要: 创建或使用现有Session 从Spark 2.0 开始,引入了 SparkSession的概念,创建或使用已有的session 代码如下: 首先,使用了 builder 模式来创建或使用已存在的SparkSession,org.apache.spark.sql.SparkSession.Build 阅读全文
posted @ 2019-07-01 23:30 JohnnyBai 阅读(3037) 评论(0) 推荐(0) 编辑
摘要: 在 scala class中,经常会有很多的代码块需要执行,它们不在任何方法中,只是孤立的代码块。 案例: 反编译class文件之后部分代码如下: 可以看出,成员变量初始化和try catch代码其实被放到了构造方法中了。注意,这个跟成员变量赋值的顺序是有关系的,成员变量一定要在使用前赋值,否则会有 阅读全文
posted @ 2019-07-01 19:04 JohnnyBai 阅读(599) 评论(0) 推荐(0) 编辑
摘要: RDD的四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency、PrunDependency、RangeDependency和OneToOneDependency四种依赖关系。如下图所示:org.apache.spark.Dependency有两个一级子类,分别是 Shuffl 阅读全文
posted @ 2019-07-01 00:55 JohnnyBai 阅读(3265) 评论(0) 推荐(2) 编辑
摘要: Spark streaming 和kafka 处理确保消息不丢失的总结 接入kafka 我们前面的1到4 都在说 spark streaming 接入 kafka 消息的事情。讲了两种接入方式,以及spark streaming 如何和kafka协作接收数据,处理数据生成rdd的 主要有如下两种方式 阅读全文
posted @ 2019-06-28 00:07 JohnnyBai 阅读(2089) 评论(0) 推荐(0) 编辑
摘要: 使用分布式receiver来获取数据使用 WAL 来实现 At least once 操作: conf.set("spark.streaming.receiver.writeAheadLog.enable","true") // 开启 WAL // 1、At most once - 每条数据最多被处 阅读全文
posted @ 2019-06-27 23:40 JohnnyBai 阅读(1384) 评论(0) 推荐(0) 编辑
摘要: 首先看一下 KafkaServer 这个类的声明: 在这个类的startup中,有一个线程池被实例化了: KafkaRequestHandlerPool 的源代码如下: 再看一下 KafkaRequestHandler 的源码: 重点看一下, kafka.server.KafkaApis#handl 阅读全文
posted @ 2019-06-25 23:50 JohnnyBai 阅读(1573) 评论(0) 推荐(0) 编辑
摘要: 先从源码来深入理解一下 DirectKafkaInputDStream 的将 kafka 作为输入流时,如何确保 exactly-once 语义。 对应的源码如下: DirectKafkaInputDStream 的类声明如下: 简言之,Kafka RDD 的一个流,每一个指定的topic 的每一个 阅读全文
posted @ 2019-06-25 23:23 JohnnyBai 阅读(822) 评论(0) 推荐(0) 编辑
摘要: 源码分析的spark版本是1.6。 首先,先看一下 org.apache.spark.streaming.dstream.InputDStream 的 类说明: 翻译如下: 也就是说 spark 1.6 版本的输入流的抽象父类就是 org.apache.spark.streaming.dstream 阅读全文
posted @ 2019-06-25 23:17 JohnnyBai 阅读(1459) 评论(0) 推荐(0) 编辑