Apache Crunch——简化 MapReduce 开发
http://www.ibm.com/developerworks/cn/opensource/os-cn-apache-crunch/index.html
与 Pig 和 Hive 一样,Crunch 是为了降低 MapReduce 的入门成本。它们的区别是:Pig 是一个基于管道的框架,而 Crunch 则是一个 Java 库,它提供比 Pig 更高级别的灵活性。
它的特点
1.面向开发人员
Hive 和 Pig 为 Java 编程经验欠缺的程序员来建立 MapReduce。Apache Crunch 为那些熟悉 Java 开发的开发者提供更有效率的 MapReduce 开发方式。Crunch 经常和 Hive 或 Pig 联合使用,一个典型的场景是:开发团队使用 Apache Crunch 管道将一些用户日志 Sessionizes 化,将结果传递给不同的 Pig 脚本或 Hive 查询用于分析。
2.最小限度的抽象
Apache Crunch 设计为 MapReduce 之上的一个薄层,开发者可以在任何时候选择使用 MapReduce 的 API。这种极简的设计理念意味着 Apache Crunch 非常快,仅仅会比优化过的 MapReduce API 慢一些。Apache 社区一直致力于优化它的运行效率。Apache Crunch 的另一个目标是可移植性,Apache Crunch 用于减少将 Hadoop 1.0 移植到 Hadoop 2.0 的工作量。
3.灵活的数据模型
Pig、Hive 都使用一种基于元组的数据模型,当输入数据可以被表示成一些标量值的集合时,类似数据库中的行。这个类数据模型会工作的很好。Apache Crunch 给予开发者更灵活表示数据模型的选择,使用 Apache Crunch 可以和复杂的数据结构如 Apache Avro records 或 protocol buffers 等交互。