【问题标题】:Converting a normal java program to map reduce将普通的 java 程序转换为 map reduce
【发布时间】:2011-10-06 18:12:25
【问题描述】:

我想编写一个 Java 包装器,它将“兼容程序”转换为 map reduce 形式以供 Hadoop 框架执行。 我知道我的问题很模棱两可。但这是我打算做的。

  • 输入一个java程序。用户将指定哪个部分 程序将由 map reduce 执行。
  • 这个 java 程序将是 由我的程序输入,它将提供等效的 map reduce 程序到 hadoop。

我被困在几点上。

  • 每个类的 Map reduce 程序会有所不同。我怎么走 概括一下?
  • 我应该从哪里开始。
  • 我应该如何解决这个问题?

欢迎提出任何建议。这将帮助我决定进一步的方向。

【问题讨论】:

    标签: hadoop mapreduce


    【解决方案1】:

    一般来说是不可能的,并不是所有的程序都支持 MapReduce 范式。 MapReduce 是一个框架,有些任务可以用它完成,有些则不能。您可以问自己确定的最佳问题是算法可以从地图减少使用中受益。

    1. 是否有可以并行评估的部分。
    2. 它们是否必须通过某些键聚合
    3. 每个拆分之间需要共享多少数据。
    4. 可以通过步骤 1 到 3 的顺序/循环来解决问题。

    【讨论】:

    • 我同意你的看法。现在似乎不可能将任何程序转换为等效的 map reduce 形式。所以我觉得我应该考虑一些特定的问题。我现在的计划是比较许多 map reduce 程序和它们的普通 Java 程序,看看是否有任何提示。
    • @user981630 是的,阅读有关 mpa reduce 算法的书籍,您将了解它的工作原理。 amazon.com/…
    【解决方案2】:

    看看Hadoop Streaming。您可以使用任何可以读取/写入 STDOUT/STDIN 的语言编写 map/reduce 函数,然后将它们连接到 Apache Hadoop。 Here 是一个很好的教程,介绍如何使用兼容的 Python map/reduce 函数创建 MapReduce 作业。

    【讨论】:

    • Thnx praveen,但在这里必须编写我想避免的 map 和 reduce 函数。我想使用普通的 Java 程序(我现在已经将我的语言固定为 java),并尝试使用 map reduce 并行运行它。我还必须确定可以并行化的区域 - 如果有的话。
    • Hadoop f/w 期望您的程序使用键/值对。我不认为您可以随意使用一些 java 或任何语言代码并将其放入 Hadoop。
    猜你喜欢
    • 2016-08-07
    • 2018-08-17
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 2011-09-04
    • 2011-07-21
    • 2016-01-01
    相关资源
    最近更新 更多