分布式计算专栏导览
本专栏收录**"把计算摊到多台机器上"这条线上的编程模型与运行时**:批处理与内存计算、图计算、交互式分析、以及流处理各自是怎么定义数据共享与容错边界的。
它和相邻专栏的分工是层次而不是技术栈:
| 不收 | 去哪看 | 本专栏只关心 |
|---|---|---|
| 存储系统自身的内部实现(GFS、Bigtable、Dynamo…) | 分布式存储 | 计算层把什么当作"稳定存储"、复用它时付什么代价 |
| 共识算法本身(Paxos、Raft、Zab) | 一致性共识算法 | 计算框架的容错走的是共识,还是能靠别的性质绕开 |
| 集群调度与运维(Chubby、Borg、Dapper) | 集群与运维 | 计算任务被交给谁去放(Borg 那一层) |
换个说法:存储专栏讲"数据放哪",共识专栏讲"节点怎么达成一致",本专栏讲**"计算怎么被组织成可并行、可恢复的形状"**。
目录
- 01 · RDD —— 用粗粒度变换换容错:血统取代复制、narrow / wide 依赖的分界、checkpoint 的判据
- 02 · Pregel —— 顶点中心 + 超步(BSP):天然无死锁的通信模型、投票停机、消息合并与聚合器
- 03 · Dremel —— 只读嵌套数据的交互式分析:repetition / definition level 编码与记录装配
- 04 · 参数服务器 —— 把"共享参数"系统化:三层压缩、三种一致性模型、任务依赖图
- 05 · S4 —— 流计算的最早形态之一:为什么批处理平台改造成不了流系统、PE 与 PN 的抽象
- 06 · Storm@Twitter —— 生产运维视角:五层架构、acker 机制,以及三个运维故事
阅读顺序
01 → 02 → 03 → 04 → 05 → 06,按数据形态递进:
- RDD 立起"内存计算 + 血统"这个地基,后面几篇的容错讨论都回到它;
- Pregel 是 RDD 明确声称能表达的一个模型,两篇构成一组正面对照:Pregel 是专用化的极致(顶点中心 API + 超步同步 + 只为图优化),RDD 声称能用 200 行库把它表达出来。并读能看清"专用框架"与"通用抽象"的边界落在哪;
- Dremel 走另一条路:不迭代,而是把嵌套结构的列式表示与树形聚合做出来;
- Parameter Server 把"参数"当作被分片的共享状态,是机器学习训练侧的取舍;
- S4 与 Storm 是流处理的早期形态与工程化版本,两篇构成一组演进对照。
相关
- 分布式 —— 母导览:本层的理论总纲(CAP、BASE、一致性模型)与其余子专栏的依赖关系;
- GFS —— 计算层眼里的"稳定存储"长什么样:RDD 的血统重算最终要落到文件块上,
lines这类基 RDD 的恢复路径依赖 GFS 的"内容不变"假设; - Dynamo —— 容错路线的对照:复制 + 反熵 vs 血统重算,两条路对"确定性"和"恢复成本"的要求正好相反。
参考
01 · M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauley, M. J. Franklin, S. Shenker, I. Stoica. Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing. NSDI 2012. 02 · G. Malewicz, M. H. Austern, A. J. C. Bik, J. C. Dehnert, I. Horn, N. Leiser, G. Czajkowski. Pregel: A System for Large-Scale Graph Processing. SIGMOD 2010. 03 · S. Melnik, A. Gubarev, J. J. Long, G. Romer, S. Shivakumar, M. Tolton, T. Vassilakis. Dremel: Interactive Analysis of Web-Scale Datasets. VLDB 2010. 04 · M. Li, D. G. Andersen, J. W. Park, A. J. Smola, A. Ahmed, V. Josifovski, J. Long, E. J. Shekita, B.-Y. Su. Scaling Distributed Machine Learning with the Parameter Server. OSDI 2014. 05 · L. Neumeyer, B. Robbins, A. Nair, A. Kesari. S4: Distributed Stream Computing Platform. Yahoo! Labs. 06 · A. Toshniwal, S. Taneja, A. Shukla, K. Ramasamy, J. M. Patel, S. Kulkarni, J. Jackson, K. Gade, M. Fu, J. Donham, N. Bhagat, S. Mittal, D. Ryaboy. Storm@Twitter. SIGMOD 2014.
YJ