首页
学习
活动
专区
工具
TVP
发布

牛肉圆粉不加葱

专栏成员
94
文章
89463
阅读量
19
订阅数
Spark SQL Limit 介绍及优化
全局限制,最多返回 limitExpr 对应条 records。总是通过 IntegerLiteral#unapply(limitExpr: Expression): Option[Int] 将 limitExpr 转换为 Int。
codingforfun
2018-09-27
3.5K0
Spark Sql 源码剖析(二): TreeNode
使用 object CurrentOrigin 为 TreeNodes 提供一个可以查找上下文的地方,比如当前正在解析哪行 code。
codingforfun
2018-08-24
9250
Apache Livy 实现思路及模块概述
关于Apache Livy(下文简称 livy)是什么以及有什么用,请移步:Livy:基于Apache Spark的REST服务
codingforfun
2018-08-24
1.7K0
Spark Sql 源码剖析(三):Analyzer
当一条 sql 语句被 SparkSqlParser 解析为一个 unresolved logicalPlan 后,接下来就会使用 Analyzer 进行 resolve。所谓的 resolve 也就是在未解析的 db、table、function、partition 等对应的 node 上应用一条条 Rule(规则)来替换为新的 node,应用 Rule 的过程中往往会访问 catalog 来获取相应的信息。
codingforfun
2018-08-24
1.1K0
Livy Session 详解(上)
从Livy Rest Api的介绍中我们可以知道,livy 共有两种 job,分别是 session 和 batch。然而,在源码实现中,session 和 batch 都是 Session 的子类,rest api 中的 session 对应源码中的 InteractivateSession;rest api 中的 batch 对应源码中的 BatchSession。在之后关于 livy 的所有文章中,session 或 batch 对应 rest api 中的含义,InteractivateSession 和 BatchSession 及 Session 都对应代码中的含义。
codingforfun
2018-08-24
2.5K0
Spark Task 的执行流程② - 创建、分发 Task
task 的创建本应该放在分配 tasks 给 executors一文中进行介绍,但由于创建的过程与分发及之后的反序列化执行关系紧密,我把这一部分内容挪到了本文。
codingforfun
2018-08-24
7120
Spark Task 的执行流程① - 分配 tasks 给 executors
等时机把处于等待状态的 tasks 分配给有空闲资源的 executors,那么这个 “把 task 分配给 executor” 的过程具体是怎样的呢?这就是本文要探讨的内容,将通过以下四小节来进行剖析:
codingforfun
2018-08-24
1.3K0
Spark executor 模块③ - 启动 executor
在介绍AppClient 向 Master 注册 Application的过程中,我们知道 Master 在处理 AppClient 的注册消息时,会进行调度,调度的过程中会决定在某个 worker 上启动某个(或某些) executor,这时会向指定的 worker 发送 LaunchExecutor 消息,本文将对 worker 接收到该消息后如何启动 executor 进行剖析。
codingforfun
2018-08-24
4240
Spark Task 的执行流程③ - 执行 task
创建、分发 Task一文中我们提到 TaskRunner(继承于 Runnable) 对象最终会被提交到 Executor 的线程池中去执行,本文就将对该执行过程进行剖析。
codingforfun
2018-08-24
4370
Spark Task 的执行流程④ - task 结果的处理
Spark Task 的执行流程③ - 执行 task一文中介绍了 task 是如何执行并返回 task 执行结果的,本文将进一步介绍 task 的结果是怎么处理的。
codingforfun
2018-08-24
4030
Spark Storage ④ - 存储执行类介绍(DiskBlockManager、DiskStore、MemoryStore)
这篇文章前半部分我们对直接在 Block 存取发挥重要作用的类进行介绍,主要是 DiskBlockManager、MemoryStore、DiskStore。后半部分以存取 Broadcast 来进一步加深对 Block 存取的理解。
codingforfun
2018-08-24
4110
Spark Storage ② - BlockManager 的创建与注册
上一篇文章介绍了 Spark Storage 模块的整体架构,本文将着手介绍在 Storeage Master 和 Slave 上发挥重要作用的 BlockManager 是在什么时机以及如何创建以及注册的。接下来分别介绍 Master 端和 Slave 端的 BlockManager。
codingforfun
2018-08-24
3940
Spark RPC 简述
Spark 中的消息通信主要涉及 RpcEnv、RpcEndpoint 及 RpcEndpointRef 几个类,下面进行简单介绍
codingforfun
2018-08-24
4790
Spark executor 模块② - AppClient 向 Master 注册 Application
前一篇文章简要介绍了 Spark 执行模块中几个主要的类以及 AppClient 是如何被创建的,这篇文章将详细的介绍 AppClient 向 Master 注册 Application 的过程,将主要从以下几个方面进行说明:
codingforfun
2018-08-24
3280
Spark executor模块① - 主要类以及创建 AppClient
SchedulerBackend 在 Standalone 模式下的 SchedulerBackend 的实现是 StandaloneSchedulerBackend,但是从大体的作用上来说,各个模式下的 SchedulerBackend 作用是相同的,主要为:
codingforfun
2018-08-24
2350
Spark Storage ① - Spark Storage 模块整体架构
Storage 模块在整个 Spark 中扮演着重要的角色,管理着 Spark Application 在运行过程中产生的各种数据,包括基于磁盘和内存的,比如 RDD 缓存,shuffle 过程中缓存及写入磁盘的数据,广播变量等。
codingforfun
2018-08-24
7580
Spark Shuffle 模块③ - Sort Based Shuffle writeSpark Shuffle 模块③ - Sort Based Shuffle write
自 Spark 1.2 起,Sort Based Shuffle 替代 Hash Based Shuffle 成为 Spark 默认的 Shuffle 策略。
codingforfun
2018-08-24
6870
JVM GC 那些事(三)- 垃圾收集器
前两篇文章分别介绍了JVM 运行时内存划分和堆上的内存分配机制,本文将对垃圾收集器进行介绍,先来看下面这幅图:
codingforfun
2018-08-24
2300
JVM GC 那些事(一)- JVM 运行时内存划分
对于经常使用 Spark 的人来说,如何设置 driver 或 executor 的内存大小,如何尽量减少 GC 相信不会陌生。要做好这两点,除了 Spark 知识的掌握外,还需要对 JVM 内存及 GC 机制有一定了解。本着能写出更好的 Spark Application 代码及让 Spark Application 更好的运行的目的,最近我进行了相应的学习,并希望以博客的形式记录,这是第一篇,来说明 JVM 运行时内存是如何划分的。
codingforfun
2018-08-24
2640
【源码剖析】- Spark 新旧内存管理方案(下)
上一篇文章【源码剖析】- Spark 新旧内存管理方案(上)介绍了旧的内存管理方案以及其实现类 StaticMemoryManager 是如何工作的,本文将通过介绍 UnifiedMemoryManager 来介绍新内存管理方案(以下统称为新方案)。
codingforfun
2018-08-24
6070
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档