【发布时间】:2016-11-08 07:12:52
【问题描述】:
通常,hadoop 输入拆分大小定义了处理数据的映射器(容器)的数量。
例如,如果一个文件是 2GB(块大小为 1GB,2 个块用于存储该文件),则该文件将存储在 2 个 HDFS 块中。但如果我将输入拆分大小指定为 2GB,则将分配 1 个映射器来处理此文件。如果我不指定分割大小,那么将分配两个映射器(每个块 1 个映射器)。
问题是——如果我的映射器 jvm 堆大小只有 1GB 而我使用输入拆分大小为 2GB 怎么办?我的映射器 JVM 会耗尽内存吗?始终使输入拆分大小等于或小于映射器 jvm 堆大小是一种好习惯吗?
【问题讨论】: