用 Hadoop 进行分布式数据处理,第 3 部分: 应用程序开发
2010-08-11 00:00:00 来源:WEB开发网核心提示: 图 2. 简单的 MapReduce 示例请注意此过程可在相同的或不同的计算机中出现或者使用不同的数据分区来按顺序或并行完成,且结果仍然是相同的,用 Hadoop 进行分布式数据处理,第 3 部分: 应用程序开发(3),虽然规范的视图(用于使用字数统计生成搜索索引)是一种用来查看 Hadoop
图 2. 简单的 MapReduce 示例
请注意此过程可在相同的或不同的计算机中出现或者使用不同的数据分区来按顺序或并行完成,且结果仍然是相同的。
虽然规范的视图(用于使用字数统计生成搜索索引)是一种用来查看 Hadoop 方法,但结果是此计算模型被常规地应用到可计算问题上,正如您将要看到的那样。
Hadoop 的灵活性
从 图 2 中所示的简单示例看,需注意 map 和 reduce 过程这两个主要元素。虽然这里存在一个这些过程如何工作的传统视图,但是它不是 map 和 reduce 体系结构所需要的。这就是 Hadoop 的真实力量 — 其灵活性用来实现在某种程度上活动的 map 和 reduce 过程,这解决了一个特定的应用程序。虽然字数统计示例对于大量的问题是有用且适用的,但是其他的模型仍然在此总体框架内适用。所需的就是使 map 和 reduce 应用程序的开发过程对于 Hadoop 可见。
在其他的应用程序中,Hadoop 已经被用于实现包括神经网络算法的计算机学习应用程序,支持矢量计算机以及 k-means 集群。
数据流
虽然 Hadoop 是一个基于 Java 的框架,但是其有可能在 Java 语言以外的语言中编写 msp 和 reduce 应用程序。Hadoop 内的 流 实用工具实现了一种数据流胶的类型。通过 流 实用工具,您可以定义您自己的可执行 map 和 reduce(使用每一个从标准输入 [stdin] 提取的输入和每一个通过标准输出 [stdout] 提供的输出),且 流 实用工具可适当地读取和写入数据,根据需要调用您的应用程序(请参考清单 3)。
更多精彩
赞助商链接