LeetCode题解-Best Time to Buy and Sell Stock

对LeetCode上遇到的股票问题做一个总结,涉及到6道题:121, 122, 123, 188, 309, 714 题目地址:Best Time to Buy and Sell Stock 这些题的总体要求都是根据每天的股价涨跌来决定买卖股票,使得总体的利润最大,但是对于不同题有不同的限定条件,难度也是越来越大,其中4道题都是DP求解。 121(Easy)...

阅读全文

k8s核心组件分析-scheduler

k8s中的scheduler负责资源调度,具体来说,是将某个pod绑定到某个node上。scheduler的输入是待调度的pod和可调度的node,输出是pod和node的bind对象。 k8s采集数据要进行调度首先得知道哪些需要调度,哪些node可以调度,调度策略需要很多信息来进行决策。k8s中并不会有消息队列来进行组件之间的通信,scheduler是直...

阅读全文

Docker架构分析

Docker架构概览网上很多架构图中都有Docker Engine和Job,但是1.7版本其实不再用这种方式。 Docker使用C/S架构。用户通过Docker client与Docker daemon通信,Docker daemon中有个API Server处理具体请求。而具体到后端的实际操作,Docker则分了很多模块,其中对容器运行时、vol...

阅读全文

Airflow源码分析(3)-jinja渲染部分

简介Jinja渲染在Airflow用于参数跟字段的渲染,这里做一个简单的实现分析。 分析模板渲染的流程是在TaskInstance()._run_raw_task()中进行的。 _run_raw_task_run_raw_task大致的逻辑如下: 1234567891011121314151617181920def _run_raw_task(...):.....

阅读全文

Airflow源码分析(2)-xcom部分

xcom简介XComs(cross-communication)使得任务之间可以交换信息,允许更细粒度的控制和状态共享。XComs包含key, value, timestamp, 同时也包含创建xcom的任务实例的task_id, dag_id, execution_date等。 Task可以在运行时通过xcom_push(key, value)发送任意可序...

阅读全文

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...

阅读全文