Hadoop如何在不丢失数据完整性的情况下拆分文件?

时间:2015-05-30 02:13:52

标签: hadoop mapreduce hdfs

我们都知道,如果输入文件很大,则会将其拆分为相等大小的拆分(默认大小为64 MB)。假设我有一个大小为104 MB的.txt文件。理论上,此文件被拆分为2个拆分(一个是64 MB大,另一个是40 MB大)。分裂是否可能发生在单词的中间?例如," Hadoop"," Ha"将是第一次分裂的结束和" doop"将是第二次分裂的开始。如果发生这种情况,我们如何正确执行WordCount问题?

1 个答案:

答案 0 :(得分:2)

该逻辑封装在为映射器配置的InputFormat中。 InputFormat有不同的子类,您可以选择特定于Mapper使用的文件类型的子类。例如,TextInputFormat类会断行换行符上的行。在拆分的开始或结束处可能存在部分行,但逻辑会识别这些情况并仍然将整行返回到一个映射器。