Airflow源码分析(1)-executor部分

Executor简介Executor是在scheduler和worker之间的一个组件,主要作用是接收scheduler发过来的可执行task,然后根据自身类型决定task的运行环境。 目前有四种类型: SequentialExecutor:Dag在单进程中顺序执行,用于测试跟开发 LocalExecutor:Dag在本地多进程执行,也是用于测试跟开发 C...

阅读全文

Airflow源码分析(0)-介绍

Airflow是一套分布式的任务编排和调度系统,核心概念是DAG,通过DAG编排任务,并通过scheduler调度任务到不同的worker上执行。 Airflow基于Python开发,所以在开发Airflow前要有Python基础。 开发环境的搭建可以参考:Contributing

阅读全文

Docker中的namespace和cgroup

1. namespace资源隔离Linux提供6种namespace隔离。 namespace flag 备注 UTS CLONE_NEWUTS 主机名和域名 IPC CLONE_NEWIPC 进程间通信 PID CLONE_NEWPID 进程PID MOUNT CLONE_NEWNS 文件系统挂载点(mount) NET CLO...

阅读全文

CS6.824(3)-Raft

Raft作为两大分布式一致性协议之一(另一个就是大名鼎鼎的Paxos),本身是为了解决Paxos学习成本过高,工程实现过于困难的问题。在论文中也是遵循这个原则,因此阅读下来还是比较轻松的,而且也有丰富的图表可以帮助思考。 不过在实现上还是会有很多坑,再次感受到了分布式编程的困难之处,尤其是调试,也再次印证了printf是最好的调试工具~(事实上只能看日志来调...

阅读全文

CS6.824(2)-GFS

GFS的架构GFS模型的master,chunkserver。master保存文件的元数据,比如file目录结构,文件大小,文件包含的chunk以及chunk在什么位置。chunkserver上保存的是具体的文件数据。 GFS读文件过程client访问master,获取到文件的chunk所在的chunkserver,然后client直接去这些chunkser...

阅读全文

快速熟悉开源项目

《Docker-容器与容器云》中的一篇文章,觉得挺不错,所以从网上转载了一份过来。原文:快速熟悉开源项目 查阅文档查阅文档包括查阅文档与博客,最好是带着问题去阅读。 1.查阅文档与博客一个好的开源项目未必会火,但是一个火的开源项目一定有其可取之处,而从众心理又会让更多人去研究它。所以,要熟悉你想研究的开源项目,第一步就是在搜索引擎中查找该项目的博客和资料。通...

阅读全文

Go tour(3)-Concurrency

并发 gorotine 协程 channel 信道 123ch := make(chan TYPE, BUFFER_SIZE) // 创建一个信道go FUNC(ch) // 用协程执行FUNC,并传递一个信道for y := range ch // 用range循环等待 练习:比较二叉树是否存储相同的值1234567891011121314151617...

阅读全文

Go tour(2)-Methods and Interfaces

方法Go没有类,方法跟函数的区别就是多了一个接收器Receiver 指针接收器,接收到的变量是指针形式的,意味着可以修改原变量。pointer receivers比value receivers更加常见。 函数的参数为指针必须显式传入一个指针,但如果是方法,Go解释器会隐式地将对象的指针传入,不需要显式取地址。同样的情况也发生在参数为值value的情况下,方...

阅读全文

Go tour(1)-Basics

基础语法123456789101112131415161718192021// :=是在函数内部声明变量并赋值,在函数外部不能用// 变量用var,常量用const,常量不能用:=k := 3const K int = 3var k = 3// 返回值可以命名,可以多个func split(sum int) (x, y int) { x = sum...

阅读全文

CS6.824(1)-mapreduce

整体架构master: 获取Job信息,决定mapper和reducer个数,并分割文件。同时接收来自worker的注册,根据一定策略调度task给可用的worker,并进行出错处理。 worker: 执行具体的mapper或者reducer。 map阶段: map(k1, v1) -> list(k2, v2) reduce阶段: reduce(k2...

阅读全文