Qizmt:MySpace 的开源 MapReduce 框架

  • 赵劼

2009 年 9 月 18 日

话题:.NET架构DevOps语言 & 开发

MapReduce是由 Google 提出并实现的编程模型,可利用大量机器所组成的集群处理或生成海量数据集。此外,由 Yahoo! 公司资助的Hadoop项目则是 MapReduce 的开源实现,在 Facebook 等大型应用中得到了广泛使用。而现在,MySpace 也将其 MapReduce 框架Qizmt开源了,可用于在大规模 Windows 集群上开发或运行分布式计算程序。

MySpace Qizmt 可用于各种分布式计算场景,例如:

  • 数据挖掘
  • 数据分析
  • 媒体处理
  • 内容索引

Qizmt 的主要功能有:

  • 使用 C# 快速开发 MapReduce 任务。
  • 简单的“自己动手(Do-It-Yourself)”安装程序
  • 内置集成开发环境 / 调试器
    • 自动将堆分配标为红色
    • 为 MapReduce 任务的快速开发提供自动完成功能
    • 在目标集群中对 MapReduce 任务进行单步调试
  • 可在集群中的任意机器上:
    • 编辑任务
    • 调试任务
    • 执行任务
    • 管理任务
  • 为 MapReduce 任务提供“差值交换(Delta-only exchange)”选项
  • 可配置的数据冗余或机器级别的故障转移
  • 可轻易为集群增加机器以提高处理能力
  • 集群程序集缓存(Cluster Assembly Cache),用于将.NET dll 释放为 MapReduce 任务
  • 三种任务类型:
    • MapReduce - 用于对大规模数据进行基于集合的处理
    • 远程 - 用于不适合 MapReduce 模型的问题
    • 本地:- 用于组织一系列 MapReduce 和远程任务
  • 执行 MapReduce 过程中的三种数据交换方式
    • 排序 - 在集群中对键 / 值对进行排序
    • 分组 - 不将键 / 值对进行排序,而将它们发送到同一个归并器(reducer)中
    • 散列排序 - 排序随机数据的超快方式

MySpace Qizmt 项目现已发布于 Google Code,支持装有.NET 3.5 SP1 的 Windows 2003 Server,Windows 2008 Server 及 Windows Vista 操作系统。

.NET架构DevOps语言 & 开发