gpt4 book ai didi

hadoop - RecordReader如何向Hadoop中的mapper发送数据

转载 作者:可可西里 更新时间:2023-11-01 15:20:49 26 4
gpt4 key购买 nike

我是 Hadoop 新手,目前正在学习 Donald Miner 和 Adam Shook MapReduce 设计模式一书中的 mapreduce 设计模式。所以在这本书中有笛卡尔积模式。我的问题是:

  1. 记录读取器何时向映射器发送数据?
  2. 将数据发送到映射器的代码在哪里?

我看到的是 CartesianRecordReader 类中的下一个函数读取两个拆分而不发送数据。

这是源代码https://github.com/adamjshook/mapreducepatterns/blob/master/MRDP/src/main/java/mrdp/ch5/CartesianProduct.java

就这些了,先谢谢了:)

最佳答案

When does record reader send data to mapper?

让我来回答一下映射器和 RecordReader 之间的关系。这是发送数据的 Hadoop 代码给映射器。 1

  RecordReader<K1, V1> input;

K1 key = input.createKey();
V1 value = input.createValue();

while (input.next(key, value)) {
// map pair to output
mapper.map(key, value, output, reporter);
if(incrProcCount) {
reporter.incrCounter(SkipBadRecords.COUNTER_GROUP,
SkipBadRecords.COUNTER_MAP_PROCESSED_RECORDS, 1);
}
}

基本上,Hadoop 会调用next 直到它返回false,并且在每次调用keyvalue 时将获得新的值(value)。 Key 通常是到目前为止读取的字节,value 是文件中的下一行。

Where is the code that send the data to mapper?

该代码位于 hadoop 的源代码中(可能在 MapContextImpl 类中),但它类似于我在代码片段中编写的内容。

编辑:源代码位于MapRunner .

关于hadoop - RecordReader如何向Hadoop中的mapper发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364195/

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