我有一个大小为50MB的文件(完整的文本数据没有空格)。我想以这样一种方式对这些数据进行分区,即每个映射器都应该获得 5MB 的数据。映射器应该以 (K,V) 格式获取数据,其中键 - 分区编号(如 1,2,..)和值是纯文本 (5MB)。
我阅读了InputFormat (method getSplits)
、FileInputFormat (FileSplit method)
和RecordReader
,但无法理解如何生成和使用拆分为我的映射器创建所需的自定义 (K,V)。我是Hadoop MapReduce
编程新手,所以请建议我在这种情况下如何进行。
配置中设置mapreduce.input.fileinputformat.split.maxsize
(以字节为单位),以告诉映射器您应该获得 5MB 的数据。