我想写一个Java包装器,它将把'兼容程序'转换成map reduce形式,由Hadoop框架执行。我知道我的问题很模棱两可。但这正是我想要做的。
- 输入一个java程序。用户将指定的部分程序将由mapreduce执行。
- 这个java程序将是由我的程序输入,它将提供等价的map reduce
我有几点卡住了。
- 每个类别的Map reduce程序将不同。我该怎么走?概括一下?
- 我应该从这里开始。
- 我应该如何解决这个问题?
欢迎提出任何建议。它将帮助我决定下一步的方向。
一般来说是不可能的,不是所有的程序都支持MapReduce范式。MapReduce是一个框架,有些任务可以用它来完成,有些则不能。你可以问自己最好的问题来确定哪种算法可以从map减少使用中获益。
- 是否存在可并行评估的部分
- 它们必须按某些键进行汇总吗
- 每个分割之间需要共享多少数据。
- 可以用步骤1到步骤3的序列/循环来解决问题吗?
看看Hadoop Streaming。你可以用任何可以读写STDOUT/STDIN的语言编写map/reduce函数,然后将它们挂钩到Apache Hadoop。这里有一个关于如何使用兼容的Python map/reduce函数创建MapReduce作业的很好的教程。