2012-12-31 117 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