哪些类型的任务/应用程序可以使用Apache Hadoop(MapReduce函数)

时间:2011-03-18 14:59:22

标签: hadoop mapreduce

我不明白哪些类型的应用可以与Hadoop一起使用。是否必须为hadoop / mapreduce定制每项任务。例如,您是否可以将任何长时间运行的java与之关联起来?或者您是否必须为hadoop定制您的应用程序/任务。我想一个很好的例子就是使用lucene和hadoop进行索引。

3 个答案:

答案 0 :(得分:1)

MapReduce是一种处理模型;它会准确地告诉您处理任务应该适合的内容。

  1. 您的处理必须是面向批处理的
  2. 您必须能够将您的工作转换为(一组)地图并减少步骤。
  3. 为了获得MapReduce的可伸缩性属性的任何优势,您必须能够将工作分成足够的独立(!!)部分,这些部分可以单独处理。
  4. Hadoop确实(除其他外)MapReduce具有额外的优势,即您可以在1000个系统上实际可靠地运行作业(如果您有足够的独立部分)。

    鉴于这些限制:有些事情无法完成,很多事情都可以完成。 分析日志文件(即一大组独立行)甚至是网络分析(每个访问者/会话都可以单独处理)是最常见的应用程序。

    所以,是的,您的任务必须转换为适合模型才能发挥作用。

答案 1 :(得分:0)

Hadoop实际上是一个用于进程拆分/组合的引擎。您将任务拆分为类似的数据集[map],然后将相似的集合组合成结果[reduce / merge]。

它是制作并行应用程序的一种方法。 map和reduce被分发到集群内的不同节点。它是一个非常严格的任务划分和可以在进程之间传递的数据[必须可序列化并与其他映射中的数据断开连接/减少]

答案 2 :(得分:0)

基本上,您必须能够将任务“拆分”为独立任务。