DryadLINQ:使用高级语言的通用分布式数据并行计算系统

  • 袁瑜,
  • 迈克尔·伊萨德,
  • 丹尼斯·费特利,
  • 米海布迪乌,
  • 阿尔林森村,
  • 普拉迪普·库马尔·冈达,
  • 乔恩·库里

OSDI’08:第八届操作系统设计与实现研讨会 |

USENIX出版

DryadLINQ是一个系统和一组语言扩展,可以为大规模分布式计算提供新的编程模型。它以两种方式概括了以前的执行环境,如SQL、MapReduce和Dryad:通过采用强类型的表达性数据模型。NET对象;并且通过在传统的高级编程语言中支持对数据集的通用命令式和声明式操作。

DryadLINQ程序是由LINQ表达式组成的顺序程序,对数据集执行任意无副作用的转换,可以使用标准编写和调试。NET开发工具。DryadLINQ系统自动且透明地将程序的数据并行部分转换为分布式执行计划,并将其传递给Dryad执行平台。Dryad在由数千台计算机组成的生产集群上连续运行了几年,确保了该计划的高效、可靠执行。

我们描述了DryadLINQ编译器和运行时的实现。我们在一组不同的程序上评估DryadLINQ,这些程序来自网络图分析、大规模日志挖掘和机器学习等领域。我们表明,可以获得卓越的绝对性能——一种通用的10种12数据字节在240台计算机上以319秒的速度执行,960个磁盘的集群,并演示了在我们改变作业使用的计算机数量时,在代表性应用程序上执行时间的近似线性缩放。