gpt4 book ai didi

Hadoop MapReduce : Is it possible to only use a fraction of the input data as the input to a MR job?

转载 作者:可可西里 更新时间:2023-11-01 15:14:31 24 4
gpt4 key购买 nike

我的输入数据的关键类是WritableComparable,它以MapFile 的形式存在。有没有什么方法可以设置最小和最大键值,并且只将记录传输到键值介于两者之间的映射器?

最佳答案

这是不可能的。因为对于 map-reduce 作业,我们只是指定输入。

我们可以做的一件事是,在映射器中编写一个条件。如果键是黑白最小值和最大值,则只处理键值对并将输出发送到 reducer。否则,什么都不做。但即使在这种情况下,我们的 map 阶段也会处理所有输入,而 reduce 阶段只会处理我们指定的键范围。

更好的方法:当在给定输入上运行 map-reduce 作业时,第一个输入将按 InputSplit 拆分这样每个拆分的数据将由一个映射器处理。但是 map() 方法一次需要一条记录作为键值对。是RecordReader的责任处理此作业并呈现面向记录的 View 。

自定义作业的 RecordReader,并覆盖 getCurrentKey()方法,如果键是黑白最小值和最大值,则返回当前键,否则返回 null。

通过这样做,只有键在给定范围内的输入数据的一部分将被发送到 map 方法。

关于Hadoop MapReduce : Is it possible to only use a fraction of the input data as the input to a MR job?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26994147/

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