![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码
文章平均质量分 85
迷路剑客
弱小和无知不是生存的障碍,傲慢才是。
展开
-
Flink-时间窗口源码分析
Flink-时间窗口源码分析1 时间窗口基本概念见Flink学习1-基础概念-时间窗口2 滚动窗口2.1 基于Blink的滚动EventTime时间窗口源码分析2.1.1 概述我们现在开始用Flink 1.10,该版本可使用很多Blink特性,我们重点在研究Flink SQL实现流平台,而尽量不写代码。而基于EventTime的滚动时间窗口又是很常用的,我们在使用时遇到了水印时间自动加...原创 2020-04-18 18:52:00 · 1727 阅读 · 0 评论 -
Java-底层原理-javac源码笔记
Java-JVM-javac源码笔记摘要本文只是简单记录下javac的源码阅读笔记未完待续0x01 简介Java的编译有三类:1.1 前端编译器简介如Javac,此类前端编译器的优化主要是针对Java编码过程功能将.java转为.class主流实现Javac1.2 JIT编译器(后端编译器)简介Just in time,即时编译器。可以把热点代码直接转为机器码,...原创 2018-12-23 21:35:29 · 2842 阅读 · 1 评论 -
Java-并发-锁-synchronized
Java-并发-锁-synchronized摘要本文会详细说下synchronized的底层实现原理。0x01 基本概念每次只能有一个线程进入临界区保证临界区内共享变量的可见性和有序性成功进入synchronized区域的线程可以拿到对象的Object-Monitor。具体有3种用法,作用域不同,在后面例子中介绍。对于拿到锁的线程来说,同一个对象的synchronized具有可重入...原创 2018-12-21 17:15:40 · 482 阅读 · 0 评论 -
Java-并发-锁-ReentrantLock
Java-并发-锁-ReentrantLock摘要ReentrantLock是使用最广的、最出名的AQS(AbstractQueuedSynchronizer)系列的可重入锁。本文会分析他的lock, unlock等重要方法,还涉及公平/非公平概念对比,及对比synchronized。0x01 基本概念ReentrantLock是使用最广的、最出名的AQS(AbstractQueuedSy...原创 2018-12-21 14:31:49 · 235 阅读 · 0 评论 -
Java-多线程-Thread相关方法
Java-多线程-Thread相关方法摘要Thread 相关方法,是JDK和用户编码中大量使用的最基本方法,本文会简单介绍常用的sleep, join, yield等方法,并介绍其实现原理。0x01 sleep1.1 基本概念sleep方法如其名,就是让线程休息下,直到指定时间耗尽。最大的特点就是阻塞过程中,不释放线程拥有的对象锁(ObjectMonitor)。sleep过程,会让...原创 2018-12-21 11:21:09 · 289 阅读 · 0 评论 -
Java-并发-队列-PriorityBlockingQueue
Java-并发-队列-PriorityBlockingQueue0x01 摘要PriorityBlockingQueue是优先级阻塞队列,本文简要分析下。0x02 简介PriorityBlockingQueue特点如下:支持优先级无界阻塞队列PriorityBlockingQueue 是无界队列,不会“队满”。实际当到达队列最大值后(Integer.MAX_VALUE - 8,减8...原创 2018-11-24 15:57:32 · 618 阅读 · 0 评论 -
源码走读-Yarn-ResourceManager08-总结
0xFD 单元测试下面说下调试的时候的一些单元测试: hadoop-2.6.0-cdh5.8.2/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/sc...原创 2018-09-13 00:13:03 · 381 阅读 · 0 评论 -
源码走读-Yarn-ResourceManager07-ShutdownHookManager
0x07 ShutdownHookManager在yarn代码中可以看到很多地方都使用了以下代码来添加自己的ShutdownHook:ShutdownHookManager.get().addShutdownHook( new CompositeServiceShutdownHook(resourceManager), SHUTDOWN_HOOK...原创 2018-09-13 00:08:17 · 487 阅读 · 0 评论 -
源码走读-Yarn-ResourceManager06-MR任务提交-服务端分析
0x06 RM调度-MR任务提交-服务端分析上文我们提到过,Yarn中Client和RM交互的协议是ApplicationClientProtocol,我们已经分析过这一协议在客户端的实现ApplicationClientProtocolPBClientImpl,这一章节我们就从分析这一协议服务端的实现ClientRMService开始。6.1 获取JobID6.2.1 Clien...原创 2018-09-12 22:52:17 · 1164 阅读 · 0 评论 -
源码走读-Yarn-ResourceManager05-MR任务提交-客户端侧分析
0x05 RM调度-MR任务提交-客户端侧分析5.1 mapreduce.joborg.apache.hadoop.mapreduce.Job我们都知道,MR任务的一般结尾会有一句话是job.waitForCompletion(true),这行代码意思是提交任务并等待结束。我们的分析就从这里入手:public boolean waitForCompletion(boolean ...原创 2018-09-12 22:50:50 · 922 阅读 · 0 评论 -
源码走读-Yarn-ResourceManager04-RM调度之FairScheduler
0x04 RM调度之FairSchedulerRM对NM的调度分为心跳触发调度和持续调度,我们先从心跳调度开始讲。因为本文的主题是讲RM,这里就不讲NM启动过程了,放在另一篇文章里分析。我们直接从AsyncDispatcher讲起。4.1 AsyncDispatcherAsyncDispatcher的内部类GenericEventHandler会处理一个EventType: NODE_...原创 2018-09-12 22:47:13 · 535 阅读 · 0 评论 -
源码走读-Yarn-ResourceManager03-RM的启动之RM详解
0x03 RM的启动之RM详解3.1 ResourceManager的继承关系3.1.1 ResourceManager第一印象我们先来看看这个类:/** * The ResourceManager is the main class that is a set of components. * "I am the ResourceManager. All your r...原创 2018-09-12 22:45:06 · 1535 阅读 · 5 评论 -
源码走读-Yarn-ResourceManager02-RM的启动-脚本
0x01 摘要Yarn作为一款热度颇高的开源资源调度器,对他的源码分析有助于理解其内部执行机制。本文基于2.6.0-cdh5.8.2,仅供参考。 0x02 RM启动过程-Shell脚本2.1 RM启动命令启动RM命令为yarn-daemon.sh start resourcemanager使用的脚本文件如下: hadoop-2.6.0-cdh5.8.2/ha...原创 2018-09-12 22:37:14 · 674 阅读 · 0 评论