我们都知道,如果输入文件很大,则会将其拆分为相等大小的拆分(默认大小为64 MB)。假设我有一个大小为104 MB的.txt文件。理论上,此文件被拆分为2个拆分(一个是64 MB大,另一个是40 MB大)。分裂是否可能发生在单词的中间?例如," Hadoop"," Ha"将是第一次分裂的结束和" doop"将是第二次分裂的开始。如果发生这种情况,我们如何正确执行WordCount问题?
答案 0 :(得分:2)
该逻辑封装在为映射器配置的InputFormat中。 InputFormat有不同的子类,您可以选择特定于Mapper使用的文件类型的子类。例如,TextInputFormat类会断行换行符上的行。在拆分的开始或结束处可能存在部分行,但逻辑会识别这些情况并仍然将整行返回到一个映射器。