gpt4 book ai didi

hadoop - Hadoop 映射任务的执行顺序/优先级

转载 作者:可可西里 更新时间:2023-11-01 14:23:05 25 4
gpt4 key购买 nike

我的 Hadoop 输入文件中有大约 5000 个条目,但我事先知道某些行的处理时间比其他行要长得多(在映射阶段)。(主要是因为我需要从Amazon S3下载一个文件,而且文件的大小会因任务而异)

我想确保首先处理最大的 map 任务,以确保我的所有 hadoop 节点大致同时完成工作。

有没有办法用 Hadoop 做到这一点?还是我需要重做整个事情? (我是 Hadoop 新手)

谢谢!

最佳答案

好吧,如果您实现自定义 InputFormat(getSplits() 方法包含有关拆分创建的逻辑),那么理论上您可以实现您想要的。

但是,您必须特别小心,因为 InputFormat 如何返回拆分的顺序不是 Hadoop 如何处理它的顺序。JobClient里面有一个拆分重排序的代码:

// sort the splits into order based on size, so that the biggest
// go first
Arrays.sort(array, new NewSplitComparator());

这将使整个事情变得更加棘手。但是您可以实现自定义 InputFormat + 自定义 InputSplit,并使 InputSlip#length() 取决于其预期执行时间。

关于hadoop - Hadoop 映射任务的执行顺序/优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18180547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com