hadoop - Hadoop 如何决定在桶/节点之间分配?

标签 hadoop mapreduce distributed-computing hadoop-partitioning

我是 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/

相关文章:

java - 如何加速分布式图算法的性能?

matlab - 如何将Matlab与hadoop集成

hadoop - Apache Spark : In SparkSql, 是易受 SQL 注入(inject)攻击的 sql

java - mapreduce 作业的进度

Hadoop 二次排序(setPartitioner 与 setOutputValueGroupingComparator)

hadoop - 重命名 PIG 输出的部分文件

python - Hadoop:无法运行MapReduce作业(python)

docker - docker 镜像可以使用hadoop吗?

java - 用于 hadoop mapreduce 的 jar

guid - 在分布式并发环境中生成唯一序列号时有哪些权衡?