Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-07-02, 13:16

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 4 篇文章 ] 
發表人 內容
 文章主題 : Mapper讀取資料
文章發表於 : 2014-04-17, 22:36 
離線

註冊時間: 2013-07-29, 18:14
文章: 17
小弟知道透過inputformat
讀取文件以及分割成<k.v>,之後送給mapper當成input
想請問板上大大
1.在source code中,mapper是在哪邊將inputformat分割完的資料讀入呢?
2.inputformat是讀到file name,之後再到hdfs中找到此file在哪個node,若大於64mb就分割,並且開啟運算在此node上,這樣不知道是否有誤解錯的地方?
先感謝各位!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: Mapper讀取資料
文章發表於 : 2014-04-20, 18:20 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
phile22114 寫:
小弟知道透過inputformat
讀取文件以及分割成<k.v>,之後送給mapper當成input
想請問板上大大
1.在source code中,mapper是在哪邊將inputformat分割完的資料讀入呢?
2.inputformat是讀到file name,之後再到hdfs中找到此file在哪個node,若大於64mb就分割,並且開啟運算在此node上,這樣不知道是否有誤解錯的地方?
先感謝各位!


1. InputFormat 中的 RecordReader 會將 InputSplit 的每一筆 <K,V> 讀入,給 map() 函數當輸入。
2. 優先在資料所在的節點執行(Data Locality),同一櫃(Rack-Local)次之,不同櫃最後。

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: Mapper讀取資料
文章發表於 : 2014-04-26, 23:19 
離線

註冊時間: 2013-07-29, 18:14
文章: 17
jazz 寫:
1. InputFormat 中的 RecordReader 會將 InputSplit 的每一筆 <K,V> 讀入,給 map() 函數當輸入。
2. 優先在資料所在的節點執行(Data Locality),同一櫃(Rack-Local)次之,不同櫃最後。

- Jazz

先謝過Jazz大,小弟這幾天trace FileInputFotmat 以及 TextInputFormat(extends FileInputFormat)
已經了解FileInputFotmat#getSplit() 將資料邏輯分割成多個FileSplit的步驟
而在TextInputFormat#createRecordReader()將FileSplit中的chunk分成一筆一筆的<k,v>給map()讀入部分
透過return new LineRecordReader()達成,而在LineRecordReader#initialize()這個函式中
會依照FileSplit去讀真的data,但是始終找不到,在哪邊有call initialize()這個函式
抑或是小弟有想法錯誤的地方,再請有經驗的大大幫助
感謝!


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: Mapper讀取資料
文章發表於 : 2014-04-27, 22:10 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
我確實曾追到 LineRecordReader 的部份,不過沒有仔細追進去。

有些流程是框架(Framework)運用物件導向的特性(多型性)達成的,
所以真的要追,可能得往 TaskTracker 的 Child 物件追了。

- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 4 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 3 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作