1

我想修改将输入文件拆分为块并存储在 Hadoop 分布式文件系统中的方式。(例如,它根据块大小拆分文件,但我的应用程序需要根据文件内容拆分文件)。所以我想确切地知道根据HADOOP的块大小属性将文件分成块的类。

4

1 回答 1

1

Blocks 是 HDFS 的抽象,InputSplits 是 MapReduce 的抽象。默认情况下,一个 HDFS 块对应一个可以修改的 InputSplit。

默认情况下,HDFS 将块划分为精确的 64MB 块,并且还可能跨记录边界进行拆分。在文件输入格式的情况下,由 InputFormat 从数据块创建 InputSplits。每个 InputSplit 将由一个单独的映射器处理。

例如它根据块大小拆分文件,但我的应用程序需要根据文件内容拆分文件

考虑 InputSplits 并根据应用程序要求创建新的 InputFormat。这里有一些关于创建新 InputFormat 的教程1、23 )。

于 2013-01-03T13:00:16.093 回答