【问题标题】:How to programmatically shutdown remaining mapreduce splits once job is done作业完成后如何以编程方式关闭剩余的 mapreduce 拆分
【发布时间】:2015-04-11 07:24:46
【问题描述】:

我是 hadoop/yarn/mapreduce 的新手。

我正在尝试使用 MapReduce 作业将文档从 Cassandra 索引到 ElasticSearch。我看到大约 700 个拆分,但我所有的文档都被第 16 个拆分索引(grep 了用户日志)。一旦没有更多要索引的文档,有没有办法以编程方式 (Java) 优雅地关闭剩余任务?

【问题讨论】:

    标签: java hadoop mapreduce


    【解决方案1】:

    您可以在 map 方法中使用以下代码获取映射器的任务 ID 和输入拆分。

    JobConf.get("mapred.task.id");
    
    FileSplit fileSplit = (FileSplit)context.getInputSplit();
    String filename = fileSplit.getPath().getName()
    

    使用上面的文件名,您将获得输入拆分的文件名,您可以使用它来终止所有不需要执行的任务。

    请在杀死几个地图任务后检查作业是否成功完成,我认为作业应该失败。我认为与其杀死 map 任务,不如只输入您需要为 mapreduce 程序编制索引的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 2010-11-27
      • 2019-06-07
      相关资源
      最近更新 更多