Taiwan Hadoop Forum
http://forum.hadoop.tw/

詢問hadoop file system以及task指派到各節點的設計
http://forum.hadoop.tw/viewtopic.php?f=7&t=38286
1 頁 (共 1 頁)

發表人:  john1992aax [ 2015-09-02, 14:29 ]
文章主題 :  詢問hadoop file system以及task指派到各節點的設計

現行的hadoop在上傳檔案會根據replication將file上傳至各個slave節點上,想請問有沒有方法能指定上傳至特定幾台呢?
<用個例子來講 : 假設clusters由1~10號組成並正常啟動, 上傳檔案只上傳到1~4號>

另一方面在run hadoop job的時候, 1個job會由好幾個mapreduce task所組成, 這些task也會被分到個台電腦去執行,照上面例子來說如果我想指定這些task只被分配到1~8號(當然上傳的檔案也只在1~8號) , 這以目前hadoop的參數設定有辦法做到嗎?

我有自行查過一些相關資料感覺要做到上述事情似乎需要改source code, 我看了apache github上的hdfs source code, 但也不太清楚關於它將file replica至各台的部分是在哪實作,如果有人曾經有改過相關hdfs source code & task assignment的經驗,希望能賜教一下,或者知道能做到我上述例子方法的也能分享一下.

發表人:  jazz [ 2015-09-06, 09:23 ]
文章主題 :  Re: 詢問hadoop file system以及task指派到各節點的設計

john1992aax 寫:
現行的hadoop在上傳檔案會根據replication將file上傳至各個slave節點上,想請問有沒有方法能指定上傳至特定幾台呢?
<用個例子來講 : 假設clusters由1~10號組成並正常啟動, 上傳檔案只上傳到1~4號>
另一方面在run hadoop job的時候, 1個job會由好幾個mapreduce task所組成, 這些task也會被分到個台電腦去執行,照上面例子來說如果我想指定這些task只被分配到1~8號(當然上傳的檔案也只在1~8號) , 這以目前hadoop的參數設定有辦法做到嗎?
我有自行查過一些相關資料感覺要做到上述事情似乎需要改source code, 我看了apache github上的hdfs source code, 但也不太清楚關於它將file replica至各台的部分是在哪實作,如果有人曾經有改過相關hdfs source code & task assignment的經驗,希望能賜教一下,或者知道能做到我上述例子方法的也能分享一下.


也許要先問「指定」上傳到/執行於特定節點的動機是什麼?能帶來什麼優點?
這個問題常常在論壇上出現,除了有人從硬體規格不同的觀點切入以外,我個人是蠻好奇有沒有什麼其他需求。
通常會問這個問題都是為了「做研究」,不過論文最開始的 Motivation 如果講不清楚,大概也是會被口試委員問到爆。

1. HDFS 現有機制:設定 Rack ( google hadoop rack aware) 類似群組的概念,但上傳上 1~4 之後,會副本到 5~10
其次,善用 HDFS 的 Short Circuit 機制,在 node1 上傳檔案,會優先擺在 node1 的 datanode。在 node4 上傳檔案會優先擺在 node4。
2. JobTracker 現有機制:使用 Fair Scheduler 設定「資源池」(Resource Pool)

單純站在瞭解程式碼,想要做出改良的觀點,透過改程式碼是辦得到,我只有追了一小段:
1. HDFS 請參考 DFSClient.java 裡的 DFSOutputStream 類別,設法改變裏面 dataQueue 的邏輯,應該有辦法辦到。
2. JobTracker 的部份可能就要找 FairScheduler.java 這個檔先做「框架」的參考,基本上等於自己重新實作一個排程器了。

很抱歉我追的程式碼很舊了,是 0.20 版本
不過有些方法應該對你們做研究會有幫助,
例如:
用 patch 的方式,來追程式碼的運作流程:http://trac.3du.me/cloud/wiki/III140705/Lab9
不要老是重頭 build 整個 hadoop 太耗時

- Jazz

1 頁 (共 1 頁) 所有顯示的時間為 UTC + 8 小時
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/