摘要: LiveListenerBus 官方说明如下: Asynchronously passes SparkListenerEvents to registered SparkListeners. 即它的功能是异步地将SparkListenerEvent传递给已经注册的SparkListener,这种异步 阅读全文
posted @ 2019-07-01 23:35 JohnnyBai 阅读(1391) 评论(0) 推荐(1)
摘要: 创建或使用现有Session 从Spark 2.0 开始,引入了 SparkSession的概念,创建或使用已有的session 代码如下: 首先,使用了 builder 模式来创建或使用已存在的SparkSession,org.apache.spark.sql.SparkSession.Build 阅读全文
posted @ 2019-07-01 23:30 JohnnyBai 阅读(3130) 评论(0) 推荐(0)
摘要: 在 scala class中,经常会有很多的代码块需要执行,它们不在任何方法中,只是孤立的代码块。 案例: 反编译class文件之后部分代码如下: 可以看出,成员变量初始化和try catch代码其实被放到了构造方法中了。注意,这个跟成员变量赋值的顺序是有关系的,成员变量一定要在使用前赋值,否则会有 阅读全文
posted @ 2019-07-01 19:04 JohnnyBai 阅读(618) 评论(0) 推荐(0)
摘要: RDD的四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency、PrunDependency、RangeDependency和OneToOneDependency四种依赖关系。如下图所示:org.apache.spark.Dependency有两个一级子类,分别是 Shuffl 阅读全文
posted @ 2019-07-01 00:55 JohnnyBai 阅读(3382) 评论(0) 推荐(2)
摘要: Spark streaming 和kafka 处理确保消息不丢失的总结 接入kafka 我们前面的1到4 都在说 spark streaming 接入 kafka 消息的事情。讲了两种接入方式,以及spark streaming 如何和kafka协作接收数据,处理数据生成rdd的 主要有如下两种方式 阅读全文
posted @ 2019-06-28 00:07 JohnnyBai 阅读(2108) 评论(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 阅读(1420) 评论(0) 推荐(0)
摘要: 首先看一下 KafkaServer 这个类的声明: 在这个类的startup中,有一个线程池被实例化了: KafkaRequestHandlerPool 的源代码如下: 再看一下 KafkaRequestHandler 的源码: 重点看一下, kafka.server.KafkaApis#handl 阅读全文
posted @ 2019-06-25 23:50 JohnnyBai 阅读(1628) 评论(0) 推荐(0)
摘要: 先从源码来深入理解一下 DirectKafkaInputDStream 的将 kafka 作为输入流时,如何确保 exactly-once 语义。 对应的源码如下: DirectKafkaInputDStream 的类声明如下: 简言之,Kafka RDD 的一个流,每一个指定的topic 的每一个 阅读全文
posted @ 2019-06-25 23:23 JohnnyBai 阅读(838) 评论(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 阅读(1468) 评论(0) 推荐(0)
摘要: 首先下载 kafka 0.11.0.3 版本 源码: http://archive.apache.org/dist/kafka/0.11.0.3/kafka-0.11.0.3-src.tgz 下载源码 首先安装 gradle,不再说明 1. 解压缩source压缩包: 2. 进入项目根目录下,执行 阅读全文
posted @ 2019-06-24 23:43 JohnnyBai 阅读(1096) 评论(0) 推荐(0)