2012-12-31 118 views
1

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

回答

1

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

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

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

想想InputSplits方面,并创建一个新的InputFormat根据应用需求的文件分割。这里有一些教程(1,23)创建一个新的InputFormat。

+0

谢谢Praveen。我打算修改hadoop源代码。所以我想知道如何控制从一个类到另一个hdfs流。
我想知道以下内容: -
1.在命令提示符中使用CopyFromLocal命令将文件复制到hdfs时调用的类。
2.为实现Mapper接口的类创建对象的类。
3.将类分配给ReplicationTargetChooser类中的chooseTarget()函数返回的datanodes列表(DatanodeDescriptor数组)的类。 – user1938899