2015-11-11 27 views
0

我來自大型機背景,並試圖瞭解Hadoop中的不同輸入格式。任何人都可以請解釋一下下面所有三個輸入格式:瞭解Hadoop中的TextInputFormat

- 的TextInputFormat - KeyValueInputFormat - SequenceFileInputFormat

回答

0

的TextInputFormat:它讀取的文本文件中的行,並提供偏移線作爲關鍵映射器和實際行作爲值映射器。

TextInputFormat用作純文本文件的InputFormat。文件被分解成行。換行符或回車符都用於表示行結束。鍵是文件中的位置,值是文本行。

KeyValueTextInputFormat(舊的KeyValueInputFormat):此格式還將每行輸入視爲單獨的記錄。直到第一個製表符字符的所有內容都將作爲關鍵字發送給Mapper,並將該行的其餘部分作爲值發送給映射器。

雖然TextInputFormat將整行視爲值,但KeyValueInputFormat通過搜索製表符來將行本身分解爲鍵和值。

SequenceFileInputFormat:讀取特定於Hadoop的特殊二進制文件。這些文件包含許多旨在允許數據快速讀入Hadoop映射器的功能。

序列文件是塊壓縮的,並提供幾種任意數據類型(不僅僅是文本)的直接序列化和反序列化。序列文件可以作爲其他MapReduce任務的輸出生成,並且是從一個MapReduce作業傳遞到另一個作業的數據的高效中間表示。