hdfs中InputFormat的職責

2021-10-05 16:17:36 字數 908 閱讀 5779

職責1:對資料進行切片,然後jobclient就會向hdfs提交切片資訊

職責2:map端通過其獲得對應的recordreader去讀取切片

它是乙個介面,只定義了兩個方法。

inputsplit getsplits(jobconf job, int numsplits) throws ioexception;

recordreadergetrecordreader(inputsplit split, jobconf job, reporter reporter) throws ioexception;

inputformat有多個實現類,例如fileinputformat,combinefileinputformat...

他們實現了不同的資料切片策略,對應著不同的inputformat的實現和recordreader實現。

inputsplit也只有兩個介面函式:

long getlength() throws ioexception;

string getlocations() throws ioexception;

只有這兩個函式的原因是對於任務調配只需要關心其位置與長度。至於如何讀取

不同的inputformat對應不同的實現,如fileinputformat對應的filesplit就有如下

的資訊:

private path file; // split所在的檔案

private long start; // split的起始位置

private long length; // split的長度,getlength()會返回它

private string hosts; // split所在的機器名稱,getlocations()會返回它

hadoop輸入格式 InputFormat

inputformat介面 package org.apache.hadoop.mapreduce包中 裡包括兩個方法 getsplits 和createrecordreader 這兩個方法分別用來定義輸入分片和讀取分片的方法。1 public abstract class inputformat ...

hdfs 中 Shell 類介紹

shell 類功能 是乙個提供執行作業系統命令的類,主要有兩個抽象方法給基類去繼承,1.abstract string getexecstring 繼承類實現該方法,提供乙個要給shell在執行的命令 2.abstract void parseexecresult bufferedreader li...

HDFS中的shell操作

1.首先命令都是以hadoop fs 開頭 2.hadoop fs ls 檢視hdfs的根目錄下的內容,hadoop fs lsr 遞迴檢視根目錄下的內容 3.hadoop fs mkdir gao,在hdfs上建立資料夾gao 4.hadoop fs put 把資料從linux上傳到hdfs的特定...