【问题标题】:How do i set a custom output committer in the new Hadoop API如何在新的 Hadoop API 中设置自定义输出提交程序
【发布时间】:2012-12-26 17:56:41
【问题描述】:

我一直在使用JobConf.setOutputCommitter() 方法来设置我自己的OutputCommitter 用于map reduce 作业。使用 hadoop v 0.20,因为此类已被弃用,设置自定义 OutputCommitter 的替代方法是什么?我尝试在Configuration 中设置属性mapred.output.committer.class,但这似乎是一个无效属性。无法找到替代方案来执行此操作。

【问题讨论】:

    标签: hadoop mapreduce output-formatting


    【解决方案1】:

    我想这取决于你所说的新 API 的含义——至少在 1.1.1 中这是no longer deprecated——我想我记得读过整个 mapred 包被过早地弃用了,而这在以后没有被弃用释放。

    如果通过新 API,您的意思是 mapreduce 包上的 mapred,那么 OutputFormats 本身有一个关联的 OutputCommitter,它是通过 OutputFormat.getOutputCommitter 方法获取的

    【讨论】:

    • 这个的java代码是什么?我有:配置 conf = super.getConf();作业作业 = Job.getInstance(conf); FileOutputFormat.setOutputPath(job, new Path(args[1]));但我找不到如何将 outputCommitter 设置为 FileOutputCommitter。似乎 EMR 中的默认值是 DirectFileOutputCommitter,但是当我的输出在 s3 中时,我得到文件已存在错误
    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多