我是 Map/Reduce 和 Hadoop 框架的新手。 我在单台机器上运行 Hadoop 程序(用于试用)。 我有 n 个输入文件,我想要这些文件中的一些单词摘要。 我知道 map 函数返回键值对,但是如何调用 map 呢? 每个文件一次还是每个文件的每一行一次?我可以配置它吗?
假设每个键都调用“reduce”是否正确?
最佳答案
为一个 InputSplit(或简称拆分) 调用一个映射,它是 InputFormat 的职责,您在 MR 工作中使用,将这些打包 split 。根据您的 InputFormat 中的逻辑,它可以是一行、多行、一个完整的文件等等。例如,默认的 InputFormat,即 TextInputFormat 由单行 组成的拆分包。
是的,您可以通过更改您正在使用的 InputFormat 来配置它。
与特定键对应的所有值都组合在一起,多个键被划分为分区,整个分区进入 reducer 进行进一步处理。因此,与特定键对应的所有值都由单个 reducer 处理,但单个 reducer 可以获取多个键。
关于hadoop - Hadoop 如何决定在桶/节点之间分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18946872/