Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-07-03, 20:34

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




發表新文章 回覆主題  [ 4 篇文章 ] 
發表人 內容
 文章主題 : 如何修改與指定HDFS中data block複本的數目與位置?
文章發表於 : 2014-05-26, 16:24 
離線

註冊時間: 2014-05-26, 15:52
文章: 4
請教各位先進,

我可以透過修改程式,來指定HDFS中data block複本的儲存位置嗎?因為我想要提高data locality,進而縮短工作執行時間 (我已經有修改scheduling了)。但是我google到一篇文章提到:
"HDFS目前并没有把副本存放策略的实现开放给用户,也就是用户无法根据自己的实际需求来指定文件的数据块存放的具体位置。" (出處http://blog.csdn.net/xhh198781/article/details/7109764),但是我在本論壇中找到一篇文章,標題為"存放 block 複本 source code" (viewtopic.php?f=7&t=36163),有提到複本的存放的source code。

所以我想請問各位先進,如果我想要增加或減少HDFS中某些data block複本,並指定這些複本存放的位置,我能透過修改hadoop程式辦到嗎?
如果可以,可以告知我要從那邊開始著手嗎?謝謝
如果不可以,是不是要改用其它的檔案系統,例如:XtreemFS,來實現我的想法。
我是使用Hadoop-0.20.2 source code進行修改。

Thank you very much.


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 如何修改與指定HDFS中data block複本的數目與位置?
文章發表於 : 2014-06-02, 22:10 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
我不確定 Hadoop 原生的指令 hadoop fs -setrep 是否是您要的。

http://hadoop.apache.org/docs/r0.18.3/hdfs_shell.html#setrep

- Jazz

mclee 寫:
請教各位先進,

我可以透過修改程式,來指定HDFS中data block複本的儲存位置嗎?因為我想要提高data locality,進而縮短工作執行時間 (我已經有修改scheduling了)。但是我google到一篇文章提到:
"HDFS目前并没有把副本存放策略的实现开放给用户,也就是用户无法根据自己的实际需求来指定文件的数据块存放的具体位置。" (出處http://blog.csdn.net/xhh198781/article/details/7109764),但是我在本論壇中找到一篇文章,標題為"存放 block 複本 source code" (viewtopic.php?f=7&t=36163),有提到複本的存放的source code。

所以我想請問各位先進,如果我想要增加或減少HDFS中某些data block複本,並指定這些複本存放的位置,我能透過修改hadoop程式辦到嗎?
如果可以,可以告知我要從那邊開始著手嗎?謝謝
如果不可以,是不是要改用其它的檔案系統,例如:XtreemFS,來實現我的想法。
我是使用Hadoop-0.20.2 source code進行修改。

Thank you very much.


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 如何修改與指定HDFS中data block複本的數目與位置?
文章發表於 : 2014-06-19, 22:41 
離線

註冊時間: 2014-05-26, 15:52
文章: 4
謝謝jazz

我試了hadoop fs -setrep指令,但我想這應該不是我要的。
目前還在努力找尋相關的程式碼中。

謝謝

mclee


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 如何修改與指定HDFS中data block複本的數目與位置?
文章發表於 : 2014-06-20, 23:38 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
mclee 寫:
謝謝jazz
我試了hadoop fs -setrep指令,但我想這應該不是我要的。
目前還在努力找尋相關的程式碼中。
謝謝
mclee


從 HDFS 的角色來看,要強迫寫入特定位置,應該從 NameNode 下手。
情境有二:
(1) hadoop fs -put 時,強迫寫入特定 DataNode,DFSClient 必須跟 NameNode 說想寫入哪台,NameNode 必須多一個 method 讓 DFSClient 呼叫。所以要改 DFSClient 跟 NameNode 才行。
(2) hadoop fs -setrep ,副本數由小變大時:順序類似上述情境,進入點不同罷了。

就我研究過 FsShell.java (hadoop fs) 呼叫 -put 時,而且是用 HDFS 的設定,會呼叫 org.apache.hadoop.hdfs.DistributedFileSystem 的 copyFromLocalFile 函數。
參考:http://trac.3du.me/cloud/wiki/III140412/Lab10
也許可以重新定義(overwrite)一個新的 copyFromLocalFile 函數,吃第五個參數是 DataNode 的 IP。

我不確定您做實驗的情境為何,不過如果將副本數由 1 提升到 2,由 2 提升到 3,在相同的節點數情形下,
同一個排程器挑到 Data Locality 的機率應該會變高才對。

- Jazz


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

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


誰在線上

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


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

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