中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hadoop輸入和輸出的處理類有哪些

發布時間:2021-12-09 15:45:15 來源:億速云 閱讀:163 作者:小新 欄目:云計算

這篇文章主要介紹了Hadoop輸入和輸出的處理類有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

hadoop輸入的處理類

                    InputFormat

                                    InputFormat負責處理MR的輸入部分。

                                    作用:

                                            1、驗證作業的輸入是否規范。

                                            2、把輸入文件切分成InputSplit。

                                            3、提供RecordReader的實現類,把InputSplit讀到Mapper中進行處理。

                    FileInputFormat

                                    FileInputFormat是所有以文件作為數據源的InputFormat實現的基類,FileInputFormat保存為Job輸入的所有文件,并實現了對輸入文件計算splits的方法。至于獲得記錄的方法是由不同的子類---TextInputFormat進行實現的。

                    TextInputFormat

                                    默認的處理類,處理普通文本文件。

                                    文件中每一行作為一個記錄,他將每一行在文件中的起始偏移量作為key,每一行的內容作為value,默認以\n或回車鍵作為一行記錄。

                                    注意:TextInputFormat集成了FileInputFormat。

                    InputSplit

                                    在執行MapReduce之前,原始數據被分割成若干Split,每個Split作為一個Map任務的輸入,在Map執行過程中Split會被分解成一個個記錄(key-value鍵值對),Map會依次處理每一個記錄。

                                    Hadoop將MapReduce的輸入數據劃分成等長的小數據塊,稱為輸入分片(InputSplit)或簡稱分片。

                                    Hadoop為每個分片構建一個Map任務,并由該任務來運行用戶自定義的Map函數從而處理分片中的每條記錄。

                                    Hadoop在存儲有輸入數據(HDFS中的數據)的節點運行Map任務,可以獲得最佳性能。這就是所謂的數據本地化優化。

                                    最佳分片的大小應該與塊大小相同:

                                            因為它是確保可以存儲在單個節點上的最大輸入塊的大小。如果分片跨越2個數據塊,那么對于任何一個HDFS節點,基本上都不可能同時存儲著2個數據塊,因此分片中的部分數據需要通過網絡傳輸到Map任務節點,。與使用本地數據運行整個Map任務相比,這種方法顯然效率更低。

                    其他輸入類

                                    CombineFileInputFormat

                                                相對于大量的小文件來說,Hadoop更合適處理少量的大文件。

                                                CombineFileInputFormat可以緩解這個問題,它是針對小文件而設計的。

                                    KeyValueTextInputFormat

                                                當輸入數據的每一行是兩列,并用Tab分離的形式的時候,KeyValueTextInputFormat處理這種格式的文件非常適合。

                                    NlineInputFormat

                                                可以控制在每個Split中數據的行數。

                                    SequenceFileInputFormat

                                                當輸入文件格式是SequenceFile的時候,要使用SequenceFileInputFormat作為輸入。

                    自定義輸入格式

                                    1、集成FileInputFormat基類;

                                    2、重寫getSplits(JobContext context)方法;

                                    3、重寫createRecordReader(InputSplit split,TaskAttemptContext context)方法;

Hadoop輸出的處理類

                     TextOutputFormat

                            默認的輸出格式,key和value中間值用Tab隔開的。

                    SequenceFileOutputFormat

                            將key和value以sequence格式輸出。

                    SequenceFileAsOutputFormat

                            將key和value以原始二進制的格式輸出。

                    MapFileOutputFormat

                            將key和value寫入MapFile中,由于MapFile中的key是有序的,所以寫入的時候必須保證記錄是按Key值順序寫入的。

                    MultipleOutputFormat

                            默認情況下一個Reduce會產生一個輸出,但是有些時候我們想一個Reduce產生多個輸出,MultipleOutputFormat和MultipleOutputs可以實現這個功能。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Hadoop輸入和輸出的處理類有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

裕民县| 偏关县| 长治市| 河池市| 镇巴县| 元谋县| 阿图什市| 天门市| 吉林省| 林周县| 长乐市| 阜新| 和平区| 淳安县| 象州县| 晋中市| 柘城县| 博野县| 交口县| 志丹县| 西林县| 大厂| 类乌齐县| 巨野县| 福清市| 鹿泉市| 临沧市| 衢州市| 保亭| 衡东县| 延吉市| 上饶县| 甘孜| 漳浦县| 清镇市| 泰顺县| 边坝县| 南和县| 马鞍山市| 东兴市| 黄平县|