netty中的发动机--EventLoop及其实现类NioEventLoop的源码分析

摘要: EventLoop 在之前介绍Bootstrap的初始化以及启动过程时,我们多次接触了NioEventLoopGroup这个类,关于这个类的理解,还需要了解netty的线程模型。NioEventLoopGroup可以理解为一组线程,这些线程每一个都可以独立地处理多个channel产生的io事件。 N 阅读全文
posted @ 2019-06-27 01:11 _朱葛 阅读(569) 评论(0) 推荐(0)

idea中从代码自动定位到左侧类结构位置

摘要: 标题的意思表达的不是很清楚,下面是这个设置的方法: 图中红圈中就是设置的位置,把鼠标悬浮在上面,可以看到这个设置的名称是Autoscroll from source, 它的作用是,你在代码中点击一个方法的时候,左边的structure区域会自动定位到这个方法,并且展示出这个方法所属的类,方法的声明不 阅读全文
posted @ 2019-06-26 21:23 _朱葛 阅读(3935) 评论(1) 推荐(0)

Trie树的java实现

摘要: leetcode 地址: https://leetcode.com/problems/implement-trie-prefix-tree/description/ 难度:中等 描述:略 解题思路: Trie树 也就是字典查找树,是一种能够实现在一个字符串集中实现快速查找和匹配的多叉树结构,关于Tr 阅读全文
posted @ 2019-06-23 13:20 _朱葛 阅读(1201) 评论(0) 推荐(0)

Bootstrap初始化过程源码分析--netty客户端的启动

摘要: Bootstrap初始化过程 netty的客户端引导类是Bootstrap,我们看一下spark的rpc中客户端部分对Bootstrap的初始化过程 TransportClientFactory.createClient(InetSocketAddress address) 只需要贴出Bootstr 阅读全文
posted @ 2019-06-23 02:15 _朱葛 阅读(716) 评论(0) 推荐(0)

netty框架概述

摘要: 概述 最近在学习netty的相关知识,也在看netty的源码,光看不练假把式,所以也正好利用自己学习的机会写几篇netty的分析文章,主要还是一些源码解析的文章,一方面有输出会促使自己在看源码,学习原理的过程中更系统,更深入,同时也能加强记忆,巩固对知识的理解。 关于netty的简介和应用我就不做介 阅读全文
posted @ 2019-06-21 00:27 _朱葛 阅读(977) 评论(0) 推荐(0)

spark源码解析--Shuffle输出追踪者--MapOutputTracker

摘要: Shuffle输出追踪者 MapOutputTracker 这个组件作为shuffle的一个辅助组件,在整个shuffle模块中具有很重要的作用。我们在前面一系列的分析中,或多或少都会提到这个组件,比如在DAGScheduler提交一个stage时会将这个stage封装成一个任务集(TaskSet) 阅读全文
posted @ 2019-06-19 01:29 _朱葛 阅读(907) 评论(0) 推荐(0)

spark源码阅读--shuffle读过程源码分析

摘要: shuffle读过程源码分析 上一篇中,我们分析了shuffle在map阶段的写过程。简单回顾一下,主要是将ShuffleMapTask计算的结果数据在内存中按照分区和key进行排序,过程中由于内存限制会溢写出多个磁盘文件,最后会对所有的文件和内存中剩余的数据进行归并排序并溢写到一个文件中,同时会记 阅读全文
posted @ 2019-06-16 19:50 _朱葛 阅读(609) 评论(0) 推荐(1)

最长连续序列

摘要: leetcode地址: https://leetcode.com/problems/longest-consecutive-sequence/description/ 难度:hard 描述: Given an unsorted array of integers, find the length o 阅读全文
posted @ 2019-06-16 10:15 _朱葛 阅读(188) 评论(0) 推荐(0)

spark源码阅读--shuffle过程分析

摘要: ShuffleManager(一) 本篇,我们来看一下spark内核中另一个重要的模块,Shuffle管理器ShuffleManager。shuffle可以说是分布式计算中最重要的一个概念了,数据的join,聚合去重等操作都需要这个步骤。另一方面,spark之所以比mapReduce的性能高其中一个 阅读全文
posted @ 2019-06-15 00:43 _朱葛 阅读(876) 评论(0) 推荐(0)

spark内存管理器--MemoryManager源码解析

摘要: MemoryManager内存管理器 内存管理器可以说是spark内核中最重要的基础模块之一,shuffle时的排序,rdd缓存,展开内存,广播变量,Task运行结果的存储等等,凡是需要使用内存的地方都需要向内存管理器定额申请。我认为内存管理器的主要作用是为了尽可能减小内存溢出的同时提高内存利用率。 阅读全文
posted @ 2019-06-13 01:35 _朱葛 阅读(672) 评论(0) 推荐(0)