netty是一款高性能的网络编程框架。有了它,我们可以不需要使用原生的java io api,轻松地实现一款高性能网络应用。目前主流的java开源框架基本都使用了netty实现网络层。
阅读全文
知乎专栏链接
kubernetes 是一款设计优秀的开源分布式系统。其中贯穿始终的设计模式是结合etcd的list-watch 模式,通过它来解耦系统中各个组件间的数据交互流程。今天来深入解析一下shared informer的源码实现细节。
项目地址 (deprecated):
深入做hadoop相关的工作也有一段时间了,期间零零散散看了不少源码,但很多都是看完就忘了,很难形成结构化的记忆。于是决定通过流程图的方式来刻画一个MR任务在Hadoop子系统中的状态机流转过程。知乎专栏链接
Hadoop生态系统中Rpc底层基本都是走的一套实现,所以有必要对Rpc底层实现做一次系统性的梳理总结。知乎专栏链接
最近恰好有点时间梳理一下整个Spark job提交执行流程的相关源码。首先,给一个总的代码流程图(在Executor那块还需补充完整),方便理解整个处理逻辑
Spark的broadcast机制本意在于两表做join时,如果其中某一个表足够的小,且又不是join的基表时(left或right join),可以将小表通过网络全量分发到各个executor节点上;通过在各个分区本地做join的方式来减少一次shuffle带来的开销
最近在用spark的dynamicAllocation时发现:如果一个executor超过了设置的executorIdleTimeout时间,触发了回收策略,停止executor之后在sparkUI上会显示该executor的状态为Dead的情况