该文被密码保护。 阅读全文
posted @ 2020-02-28 16:37 JohnnyBai 阅读(6) 评论(0) 推荐(0)
摘要: kafka 老版本的编译有很多的不兼容的问题,故记录之。 1. 准备 jdk1.8 gradle3.1 scala2.11.8 idea zookeeper(单机集群都可以) 2. 下载源码 从 http://archive.apache.org/dist/kafka/ 下载 0.10.0.1 版本 阅读全文
posted @ 2020-02-24 10:53 JohnnyBai 阅读(1338) 评论(0) 推荐(1)
摘要: 前言 在《Spark SQL内核剖析》书中4.3章节,谈到Catalyst体系中生成的抽象语法树的节点都是以Context来结尾,在ANLTR4以及生成的SqlBaseParser解析SQL生成,其源码部分就是语法解析,其生成的抽象语法树的节点都是ParserRuleContext的子类。 提出问题 阅读全文
posted @ 2020-02-22 13:49 JohnnyBai 阅读(3062) 评论(1) 推荐(0)
摘要: 前言 一个SQL从词法解析、语法解析、逻辑执行计划、物理执行计划最终转换为可以执行的RDD,中间经历了很多的步骤和流程。其中词法分析和语法分析均有ANTLR4完成,可以进一步学习ANTLR4的相关知识做进一步了解。 本篇文章主要对一个简单的SQL生成的逻辑执行计划物理执行计划的做一个简单地说明。 示 阅读全文
posted @ 2020-02-21 22:07 JohnnyBai 阅读(3275) 评论(0) 推荐(1)
摘要: 提出问题 1. shuffle过程的数据是如何传输过来的,是按文件来传输,还是只传输该reduce对应在文件中的那部分数据? 2. shuffle读过程是否有溢出操作?是如何处理的? 3. shuffle读过程是否可以排序、聚合?是如何做的? 。。。。。。 概述 在 spark shuffle的写操 阅读全文
posted @ 2019-08-09 20:25 JohnnyBai 阅读(1772) 评论(5) 推荐(3)
摘要: 提出问题 1. spark shuffle的预聚合操作是如何做的,其中底层的数据结构是什么?在数据写入到内存中有预聚合,在读溢出文件合并到最终的文件时是否也有预聚合操作? 2. shuffle数据的排序是如何做的? 分区内的数据是否是有序的?若有序,spark 内部是按照什么排序算法来排序每一个分区 阅读全文
posted @ 2019-08-06 23:44 JohnnyBai 阅读(2288) 评论(3) 推荐(3)
摘要: 前言 在前两篇文章 spark shuffle的写操作之准备工作 中引出了spark shuffle的三种实现,spark shuffle写操作三部曲之BypassMergeSortShuffleWriter 讲述了BypassMergeSortShuffleWriter 用于shuffle写操作的 阅读全文
posted @ 2019-08-04 23:23 JohnnyBai 阅读(2951) 评论(0) 推荐(2)
摘要: 前言 再上一篇文章 spark shuffle的写操作之准备工作 中,主要介绍了 spark shuffle的准备工作,本篇文章主要介绍spark shuffle使用BypassMergeSortShuffleWriter写数据详细细节。 在本篇文章中如果有不了解的术语,也可以参照 spark sh 阅读全文
posted @ 2019-08-03 07:00 JohnnyBai 阅读(2410) 评论(0) 推荐(2)
摘要: 前言 在前三篇文章中,spark 源码分析之十九 -- DAG的生成和Stage的划分 剖析了DAG的构建和Stage的划分,spark 源码分析之二十 -- Stage的提交 剖析了TaskSet任务的提交,以及spark 源码分析之二十一 -- Task的执行细节剖析了Task执行的整个流程。在 阅读全文
posted @ 2019-08-02 22:59 JohnnyBai 阅读(2253) 评论(0) 推荐(3)
摘要: 问题的提出 本篇文章将回答如下问题: 1. spark任务在执行的时候,其内存是如何管理的? 2. 堆内内存的寻址是如何设计的?是如何避免由于JVM的GC的存在引起的内存地址变化的?其内部的内存缓存池回收机制是如何设计的? 3. 堆外和堆内内存分别是通过什么来分配的?其数据的偏移量是如何计算的? 4 阅读全文
posted @ 2019-07-31 23:43 JohnnyBai 阅读(2171) 评论(0) 推荐(3)