并行与分布式编程范例深度解析
1. Dryad 框架概述
Dryad 在将数据流图映射到底层资源时,会考虑数据和计算的局部性。当数据流图映射到一组计算引擎上时,每个集群节点会运行一个轻量级守护进程来执行分配的任务,这些任务由用户使用特定应用程序定义。运行时,作业管理器与每个守护进程通信,以监控节点的计算状态以及它与前后节点的通信情况。
1.1 通信机制
运行时,通道用于在表示处理程序的顶点之间传输结构化项目。实现通道的通信机制有多种,如共享内存、TCP 套接字,甚至分布式文件系统。
1.2 2D 分布式管道系统
Dryad 作业的执行可看作是一个二维分布式管道集合。传统 UNIX 管道是一维的,每个节点是一个单一程序;而 Dryad 的二维分布式管道系统在每个顶点节点有多个处理程序,能同时处理大规模数据。在二维管道执行期间,Dryad 定义了许多操作来动态构建和更改有向无环图(DAG),包括创建新顶点、添加图边、合并两个图以及处理作业输入和输出。
1.3 容错机制
Dryad 内置了容错机制。由于基于 DAG,通常有两种故障类型:顶点故障和通道故障,处理方式不同。对于顶点故障,作业管理器可选择另一个节点重新执行分配给故障节点的相应作业;对于通道故障,创建通道的顶点将重新执行,并创建新通道再次连接相应节点。
1.4 应用场景
作为通用框架,Dryad 可用于多种场景,包括脚本语言支持、MapReduce 编程和 SQL 服务集成。
2. DryadLINQ:微软的分布式计算方案
DryadLINQ 构建于微软的 Dryad 执行框架
超级会员免费看
订阅专栏 解锁全文

55

被折叠的 条评论
为什么被折叠?



