hadoop - 如何在 mapreduce 作业之后安排后处理任务

标签 hadoop mapreduce

我正在寻找一种简单的方法来在 map reduce 作业之后链接后处理代码

具体来说,in 涉及重命名\移动由 org.apache.hadoop.mapred.lib.MultipleOutputs 创建的输出文件(该类对输出文件名有限制,所以我不能直接在 mapreduce 作业中生成文件)

我知道(或想到)的选项是:

  • 将它添加到作业创建代码中 - 这是我现在所做的,但我更喜欢任务将由 jobtracker 安排(以减少进程中止的机会)
  • 使用工作流引擎 (luigi, oozie) - 但这对于这个问题来说似乎有点过头了
  • 使用作业链接 - 这允许链接 mapreduce 作业 - 可以链接“简单”任务吗?
  • 最佳答案

    您的“简单”任务应该是仅限 Mapper 的工作。您的 Map() 接收文件名作为键并重命名文件。为此,您必须编写自己的 InputFormat 和 RecordReader,就像在链接中一样,但您的 RecordReader 不应实际读取文件,只需在 getCurrentKey() 中返回文件名:

    https://code.google.com/p/hadoop-course/source/browse/HadoopSamples/src/main/java/mr/wholeFile/WholeFileInputFormat.java?r=3

    https://code.google.com/p/hadoop-course/source/browse/HadoopSamples/src/main/java/mr/wholeFile/WholeFileRecordReader.java?r=3

    关于hadoop - 如何在 mapreduce 作业之后安排后处理任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21730414/

    相关文章:

    java - Java HiveClient失败选择:java.sql.SQLException:查询返回的非零代码:9

    python - 使用 Hadoop Streaming 管理依赖关系?

    java - 在java中访问远程hbase,masterNotRunning

    java - 在 AWS EMR 上运行 Java 1.8 时不支持 major.minor 版本 52.0

    hadoop - Mapreduce:reducers 比 mappers 多?

    hadoop - 如何在HDFS系统中引入 Octave 输出图像

    java - MapReduce 找不到符号

    java - 运行简单的Hadoop Map/Reduce教程

    hadoop - 用 Pig latin 分组并为每个键流式传输

    hadoop - hadoop流获取最佳插槽数量