inputformat介面主要用於描述輸入資料的格式,它有兩個方法:
inputsplit
getsplits(jobconf job, int numsplits)
recordreaderv> getrecordreader(inputsplit split,
jobconf job,
reporter reporter)
getsplits方法完成資料切分功能,它會將輸入資料切分成numsplits個inputsplit,注意inputsplit有兩個特點:
1.只是邏輯上的分片,只記錄分片的元資料資訊,比如起始位置、長度、所在的節點列表
2.可序列化,以保證程序間通訊。當作業被提交到jobtracker之前,client會呼叫作業inputformat中的getsplit函式,並將得到的inputsplit序列化到檔案中,當作業提交到jobtracker端對作業初始化時,可直接讀取該檔案,解析出所有的inputsplit,並建立對應的map task
getrecorder方法返回乙個recordreader物件,該物件可將輸入的inputsplit解析成若干個key/value對。mapreduce框架在map task執行過程中會不斷呼叫recordreader物件中的方法,迭代獲取key/value對並交給map函式處理
Hadoop程式設計模型元件 InputFormat
hadoop中的inputformat介面 inputformat介面主要的任務是對輸入的原始資料進行切分並轉換成格式的資料,它主要完成兩個功能 1.通過getsplite 方法對原始資料進行切分,得到若干個inputsplite,這裡的切分是指邏輯上的切分,即確定每個splite的起始位址和長度而...
hadoop之yarn事件驅動模型
yran程式設計有很多地方採用了事件驅動模型,把 簡化,方便理解它。1.定義乙個事件 import org.apache.hadoop.yarn.event.abstractevent public class taskevent extends abstractevent public strin...
Hadoop程式設計實現之HDFS
hdfs原理圖 下面我們來寫乙個基於hdfs的demo,該demo主要實現的是將hdfs上的乙個檔案內容讀取出來並儲存到另乙個檔案上的功能。1.輔助類 這個類主要是用來獲取hdfs檔案系統連線的 public class hdfsutils param popenuri param puser re...