【发布时间】:2016-04-26 10:40:29
【问题描述】:
场景:我有节点 A 和节点 B,每个节点都有 100 mb 的磁盘空间。我想在其中存储 128MB 文件(让复制因子为 1,块大小为 64MB)。在这种情况下文件将如何存储?处理这个文件还需要多少个映射器和减速器? 假设我想用一个映射器处理这个文件,那么哪个节点将运行这个映射器?
【问题讨论】:
场景:我有节点 A 和节点 B,每个节点都有 100 mb 的磁盘空间。我想在其中存储 128MB 文件(让复制因子为 1,块大小为 64MB)。在这种情况下文件将如何存储?处理这个文件还需要多少个映射器和减速器? 假设我想用一个映射器处理这个文件,那么哪个节点将运行这个映射器?
【问题讨论】:
我假设您说的是 2 个数据节点 A 和 B,因为整个集群只有 A 和 B,它们中的任何一个都需要是不能存储任何数据的名称节点。
文件将被分成两个 64MB 的块,A 和 B 将分别托管一个块。不能说谁第一谁第二。
在默认设置中,2 个映射器 将处理各自节点中的拆分,一个减速器 将处理两个映射器的输出。
如果你想强制只使用一个映射器,第一个心跳进入作业跟踪器的任务跟踪器的数据节点将运行映射器。
希望这会有所帮助。
【讨论】:
JobConf.setNumReduceTasks(int)设置减速器的数量,则默认使用一个减速器。