随笔分类 -  spark

摘要:信念,你拿它没办法,但是没有它你什么也做不成。—— 撒姆尔巴特勒 前言 对于spark streaming而言,大的batch任务会导致后续batch任务积压,对于structured streaming任务影响如何,本篇文章主要来做一下简单的说明。 本篇文章的全称为设置trigger后,运行时间长 阅读全文
posted @ 2020-05-07 01:02 JohnnyBai 阅读(1182) 评论(0) 推荐(0) 编辑
摘要:只有满怀自信的人,能在任何地方都怀有自信,沉浸在生活中,并认识自己的意志。 前言 最近公司有一个生产的小集群,专门用于运行spark作业。但是偶尔会因为nn或dn压力过大而导致作业checkpoint操作失败进而导致spark 流任务失败。本篇记录从应用层面对spark作业进行优化,进而达到优化集群 阅读全文
posted @ 2020-04-24 21:46 JohnnyBai 阅读(2152) 评论(2) 推荐(1) 编辑
该文被密码保护。
posted @ 2020-03-26 01:49 JohnnyBai 阅读(4) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-02-29 14:54 JohnnyBai 阅读(23) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-02-28 16:37 JohnnyBai 阅读(6) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-02-27 16:26 JohnnyBai 阅读(99) 评论(0) 推荐(0) 编辑
摘要:前言 在《Spark SQL内核剖析》书中4.3章节,谈到Catalyst体系中生成的抽象语法树的节点都是以Context来结尾,在ANLTR4以及生成的SqlBaseParser解析SQL生成,其源码部分就是语法解析,其生成的抽象语法树的节点都是ParserRuleContext的子类。 提出问题 阅读全文
posted @ 2020-02-22 13:49 JohnnyBai 阅读(2806) 评论(1) 推荐(0) 编辑
摘要:前言 一个SQL从词法解析、语法解析、逻辑执行计划、物理执行计划最终转换为可以执行的RDD,中间经历了很多的步骤和流程。其中词法分析和语法分析均有ANTLR4完成,可以进一步学习ANTLR4的相关知识做进一步了解。 本篇文章主要对一个简单的SQL生成的逻辑执行计划物理执行计划的做一个简单地说明。 示 阅读全文
posted @ 2020-02-21 22:07 JohnnyBai 阅读(3155) 评论(0) 推荐(1) 编辑
摘要:提出问题 1. shuffle过程的数据是如何传输过来的,是按文件来传输,还是只传输该reduce对应在文件中的那部分数据? 2. shuffle读过程是否有溢出操作?是如何处理的? 3. shuffle读过程是否可以排序、聚合?是如何做的? 。。。。。。 概述 在 spark shuffle的写操 阅读全文
posted @ 2019-08-09 20:25 JohnnyBai 阅读(1688) 评论(5) 推荐(3) 编辑
摘要:提出问题 1. spark shuffle的预聚合操作是如何做的,其中底层的数据结构是什么?在数据写入到内存中有预聚合,在读溢出文件合并到最终的文件时是否也有预聚合操作? 2. shuffle数据的排序是如何做的? 分区内的数据是否是有序的?若有序,spark 内部是按照什么排序算法来排序每一个分区 阅读全文
posted @ 2019-08-06 23:44 JohnnyBai 阅读(2168) 评论(3) 推荐(3) 编辑
摘要:前言 在前两篇文章 spark shuffle的写操作之准备工作 中引出了spark shuffle的三种实现,spark shuffle写操作三部曲之BypassMergeSortShuffleWriter 讲述了BypassMergeSortShuffleWriter 用于shuffle写操作的 阅读全文
posted @ 2019-08-04 23:23 JohnnyBai 阅读(2688) 评论(0) 推荐(2) 编辑
摘要:前言 再上一篇文章 spark shuffle的写操作之准备工作 中,主要介绍了 spark shuffle的准备工作,本篇文章主要介绍spark shuffle使用BypassMergeSortShuffleWriter写数据详细细节。 在本篇文章中如果有不了解的术语,也可以参照 spark sh 阅读全文
posted @ 2019-08-03 07:00 JohnnyBai 阅读(2256) 评论(0) 推荐(2) 编辑
摘要:前言 在前三篇文章中,spark 源码分析之十九 -- DAG的生成和Stage的划分 剖析了DAG的构建和Stage的划分,spark 源码分析之二十 -- Stage的提交 剖析了TaskSet任务的提交,以及spark 源码分析之二十一 -- Task的执行细节剖析了Task执行的整个流程。在 阅读全文
posted @ 2019-08-02 22:59 JohnnyBai 阅读(2109) 评论(0) 推荐(3) 编辑
摘要:问题的提出 本篇文章将回答如下问题: 1. spark任务在执行的时候,其内存是如何管理的? 2. 堆内内存的寻址是如何设计的?是如何避免由于JVM的GC的存在引起的内存地址变化的?其内部的内存缓存池回收机制是如何设计的? 3. 堆外和堆内内存分别是通过什么来分配的?其数据的偏移量是如何计算的? 4 阅读全文
posted @ 2019-07-31 23:43 JohnnyBai 阅读(1990) 评论(0) 推荐(3) 编辑
摘要:引言 在上两篇文章 spark 源码分析之十九 -- DAG的生成和Stage的划分 和 spark 源码分析之二十 -- Stage的提交 中剖析了Spark的DAG的生成,Stage的划分以及Stage转换为TaskSet后的提交。 如下图,我们在前两篇文章中剖析了DAG的构建,Stage的划分 阅读全文
posted @ 2019-07-29 19:19 JohnnyBai 阅读(2821) 评论(2) 推荐(2) 编辑
摘要:如下,是 spark 相关系列的一些文章汇总,持续更新中...... Spark RPC spark 源码分析之五--Spark RPC剖析之创建NettyRpcEnv spark 源码分析之六--Spark RPC剖析之Dispatcher和Inbox、Outbox剖析 spark 源码分析之七- 阅读全文
posted @ 2019-07-28 16:58 JohnnyBai 阅读(5793) 评论(0) 推荐(5) 编辑
摘要:引言 上篇 spark 源码分析之十九 -- DAG的生成和Stage的划分 中,主要介绍了下图中的前两个阶段DAG的构建和Stage的划分。 本篇文章主要剖析,Stage是如何提交的。 rdd的依赖关系构成了DAG,DAGScheduler根据shuffle依赖关系将DAG图划分为一个一个小的st 阅读全文
posted @ 2019-07-26 19:48 JohnnyBai 阅读(1401) 评论(0) 推荐(1) 编辑
摘要:上篇文章 spark 源码分析之十八 -- Spark存储体系剖析 重点剖析了 Spark的存储体系。从本篇文章开始,剖析Spark作业的调度和计算体系。 在说DAG之前,先简单说一下RDD。 对RDD的整体概括 文档说明如下: RDD全称Resilient Distributed Dataset, 阅读全文
posted @ 2019-07-25 19:08 JohnnyBai 阅读(5007) 评论(1) 推荐(3) 编辑
摘要:本篇文章主要剖析BlockManager相关的类以及总结Spark底层存储体系。 总述 先看 BlockManager相关类之间的关系如下: 我们从NettyRpcEnv 开始,做一下简单说明。 NettyRpcEnv是Spark 的默认的RpcEnv实现,它提供了个Spark 集群各个节点的底层通 阅读全文
posted @ 2019-07-23 19:09 JohnnyBai 阅读(1975) 评论(0) 推荐(2) 编辑
摘要:上篇文章 spark 源码分析之十六 -- Spark内存存储剖析 主要剖析了Spark 的内存存储。本篇文章主要剖析磁盘存储。 总述 磁盘存储相对比较简单,相关的类关系图如下: 我们先从依赖类 DiskBlockManager 剖析。 DiskBlockManager 文档说明如下: 创建并维护逻 阅读全文
posted @ 2019-07-21 20:08 JohnnyBai 阅读(1235) 评论(0) 推荐(0) 编辑