我想修改将输入文件拆分为块并存储在 Hadoop 分布式文件系统中的方式。(例如,它根据块大小拆分文件,但我的应用程序需要根据文件内容拆分文件)。所以我想确切地知道根据HADOOP的块大小属性将文件分成块的类。
问问题
470 次
1 回答
1
Blocks 是 HDFS 的抽象,InputSplits 是 MapReduce 的抽象。默认情况下,一个 HDFS 块对应一个可以修改的 InputSplit。
默认情况下,HDFS 将块划分为精确的 64MB 块,并且还可能跨记录边界进行拆分。在文件输入格式的情况下,由 InputFormat 从数据块创建 InputSplits。每个 InputSplit 将由一个单独的映射器处理。
例如它根据块大小拆分文件,但我的应用程序需要根据文件内容拆分文件
考虑 InputSplits 并根据应用程序要求创建新的 InputFormat。这里有一些关于创建新 InputFormat 的教程(1、2和3 )。
于 2013-01-03T13:00:16.093 回答