Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2020-09-20, 21:02

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




發表新文章 回覆主題  [ 9 篇文章 ] 
發表人 內容
 文章主題 : 請問HDFS的啟動問題
文章發表於 : 2011-06-30, 19:26 
離線

註冊時間: 2011-06-30, 18:59
文章: 5
我使用四台實體主機架設hadoop群集,ip範圍192.168.199.1 ~ 4
master是192.168.199.1
conf/slaves裡面的是192.168.199.2 ~ 4

我使用NFS把master的資料夾分享給client,讓所以的client皆能讀取同的hadoop目錄位置(/opt/hadoop-0.20.203.0)
namenode和datanode之間,彼此都可以ssh無密碼登入
防火牆都有關掉,hadoop.tmp.dir也都有更改分別指向主機自己的儲存目錄
目前遇到的問題就是,namenode沒有註冊任何一個datanode,也就是live nodes = 0
jps指令也都分別顯示namenode和datanode有啟動
log裡也沒有顯示任何錯誤訊息(最大的錯誤就是沒有錯誤訊息 Orz)
但如果把master主機也加入slaves,master的datanode卻可以成功註冊
但其他的主機依然不行。
請問是否有哪些設定我沒注意到?或我可以朝哪個方向去檢查問題?
謝謝

附檔附上我的log
附加檔案:
hadoop-root-namenode-hadoop-eth1.log [17.05 KiB]
被下載 925 次
附加檔案:
hadoop-root-datanode-hadoop102.log [3.36 KiB]
被下載 719 次


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-06-30, 20:10 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
korprulu 寫:
附檔附上我的log
附加檔案:
hadoop-root-namenode-hadoop-eth1.log
附加檔案:
hadoop-root-datanode-hadoop102.log


這個問題我以前遇過,會特別發生在使用 NFS 的情境下~
請看 datanode 的 log 有一個地方很特殊:storageID=空白

引言回覆:
2011-06-30 18:44:07,946 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: dnRegistration = DatanodeRegistration(hadoop102:50010, storageID=, infoPort=50075, ipcPort=50020)


猜測您是用 DRBL 在做佈署吧?因為會出現 hadoop-eth1 這種 hostname 的不多 :P

解法還蠻簡單的,就是給 DataNode 一個 storageID :)
http://trac.nchc.org.tw/cloud/wiki/Hadoop_Lab9
有一個 Script - http://classcloud.org/drbl-hadoop-live-run.sh
這裡有用 DRBL Live CD 佈署三台無碟的影片
http://www.youtube.com/watch?v=Ix4WigGvE_A

裡面這行就是在做給 DataNode 一個 storageID 的動作。

引言回覆:
ssh 192.168.200.1 "echo \"storageID=\$(hostname)\" >> /tmp/hadoop-hdfsadm/dfs/data/current/VERSION"


您若是有設定 ${hadoop.tmp.dir} 到非 /tmp 的路徑,請在其他台產生檔案到 ${hadoop.tmp.dir}/dfs/data/current/VERSION 底下。

供您參考~

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-06-30, 20:37 
離線

註冊時間: 2011-06-30, 18:59
文章: 5
果然逃不過高人的眼睛 XD
我是用DRBL做hadoop群集

我使用了ssh 192.168.199.x "echo \"storageID=\$(hostname)\" >> /hadoop/tmp/dfs/data/current/VERSION"
被設定的slave沒有反應 QQ
不過另外一台活過來了 應該是時間上的湊巧吧 XD

注意到那台成功的datanode的log中有一個這樣的訊息
代碼:
2011-06-30 20:19:49,773 INFO org.apache.hadoop.hdfs.server.datanode.DataBlockScanner: Verification succeeded for blk_5972741059129029126_1001


想請問的是,
這訊息是否代表datanode還沒起來是因為再scan block?
datanode起來的時間是否與block size大小有關?
和分派給datanode的磁區大小是否有關?

謝謝


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-06-30, 21:17 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
korprulu 寫:
我使用了ssh 192.168.199.x "echo \"storageID=\$(hostname)\" >> /hadoop/tmp/dfs/data/current/VERSION"
被設定的slave沒有反應 QQ
不過另外一台活過來了 應該是時間上的湊巧吧 XD


您如果看 script 的話,會發現我是先關閉 DataNode 再塞 storageID 然後重新啟動 DataNode :P

至於一些細節的部份,像是 block scan,我就不是很確定了~
先前也覺得很怪,用 NFS 偶爾會成功~也許真的用 NFS 會比較晚 scan block。

我覺得跟分配給 DRBL Client 也就是 DataNode 的磁區有關,
如果您有手動掛載硬碟到 /hadoop 就不會有這種問題,它就能識別到 storageID。
目前 http://hadoop.nchc.org.tw 公用叢集就是用這種作法。
但是如果 /hadoop 是 tmpfs 或 NFS 的話,它就無法識別 storageID。

一些經驗分享~

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-06-30, 22:44 
離線

註冊時間: 2011-06-30, 18:59
文章: 5
:o :o :o
現在真的覺很不好意思 :oops:
在問這帖子以前,就有找到Jazz大大給的drbl-hadoop-live的資料,但是未理會
Jazz大大提示後,又只匆匆一撇,急著嘗試新方法
以後看東西要認真看了 Orz

在我的環境設定裡,slave的/hadoop目錄掛的是本機磁碟,這幾天在那邊試
隔天起來,live nodes還是0,就以為什麼地方設錯了,連個錯誤訊息都沒有

經過這次誤打誤撞,了解到storageID可以手動給,真是太感謝Jazz大大了


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-07-01, 09:39 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
korprulu 寫:
在我的環境設定裡,slave的/hadoop目錄掛的是本機磁碟,這幾天在那邊試
隔天起來,live nodes還是0,就以為什麼地方設錯了,連個錯誤訊息都沒有


應該是執行程序上的問題,必須先掛載好硬碟後,才能執行 NameNode , DataNode 等服務。
想請教的是您的 Hadoop 是裝套件呢?還是手動安裝呢?

不妨確認一下硬碟掛載後,在 /hadoop/tmp/dfs/data/current/VERSION 的內容是否正確。

--- 底下是 hadoop.nchc.org.tw 大略的作法,實際上我有做了一個 DRBL-Hadoop Live CD 放在 http://drbl-hadoop.sf.net ---
--- 不過該版本的 CDH2 有點問題,要再修改 http://trac.nchc.org.tw/grid/wiki/jazz/ ... 2010-07-20 ---

PS. 我習慣用 Debian / Ubuntu 系列,加上 DRBL Live CD 也是 Debian Live,故以下的方法都是遵循 Debian 的路徑擺放方式

裝妥 DRBL 後
將這個 http://trac.nchc.org.tw/grid/export/243 ... mount-disk 放在 /etc/init.d 底下
http://trac.nchc.org.tw/grid/export/243 ... rbl-hadoop 放在 /etc/default 底下
然後執行 /opt/drbl/sbin/drbl-client-service drbl-hadoop-mount-disk on
會把每一個 DRBL client 都將本機硬碟 /dev/sda1 掛載到 /etc/default/drbl-hadoop 中設定的 /var/lib/hadoop
這部份若有變動,請自行修改 init.d 的 script 跟 drbl-hadoop 的設定

如此,每一台 DRBL Client 就會在開機後,掛載本機硬碟。

http://hadoop.nchc.org.tw 為例,我們裝的是 Cloudera CDH2 的套件(目前已經出到 CDH3 了,只是我比較喜歡穩定版)
所以它也有 init.d 的 script 可以個別獨立啟動 DataNode 與 TaskTracker。

首先我會在 DRBL Server 上執行
~# update-rc.d hadoop-0.20-namenode defaults
~# update-rc.d hadoop-0.20-jobtracker defaults
(印象套件安裝完不會加,若有加,就視您的需求修改了)

接著用
~# /opt/drbl/sbin/drbl-client-service hadoop-0.20-datanode on
~# /opt/drbl/sbin/drbl-client-service hadoop-0.20-tasktracker on
就能讓 DRBL Client 依照以下程序執行

這裡有點吊詭是 drbl-client-service 會全部設成 S20,

lrwxrwxrwx 1 root root 32 2011-06-30 09:15 S20drbl-hadoop-mount-disk -> ../init.d/drbl-hadoop-mount-disk
lrwxrwxrwx 1 root root 30 2011-06-30 09:15 S20hadoop-0.20-datanode -> ../init.d/hadoop-0.20-datanode
lrwxrwxrwx 1 root root 33 2011-06-30 09:15 S20hadoop-0.20-tasktracker -> ../init.d/hadoop-0.20-tasktracker

所以依字母順序,執行順序恰巧是 (1) 掛載硬碟 (2) 啟動 datanode (3) 啟動 tasktracker

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-07-04, 02:31 
離線

註冊時間: 2011-06-30, 18:59
文章: 5
引言回覆:
應該是執行程序上的問題,必須先掛載好硬碟後,才能執行 NameNode , DataNode 等服務。
想請教的是您的 Hadoop 是裝套件呢?還是手動安裝呢?


從apache hadoop官網下載壓縮檔,應該算是手動安裝吧

引言回覆:
不妨確認一下硬碟掛載後,在 /hadoop/tmp/dfs/data/current/VERSION 的內容是否正確。


找不到datanode的問題是發生在slave第一次啟動datanode服務時,/hadoop/tmp/dfs/data/current/VERSION裡的storageID是空值,試過擺一個晚上,隔天起來還是沒有向namenode註冊成功。
但如果datanode已曾正確向namenode註冊,slave重新開機後,datanode啟動後就不會有問題。

現在手動給storageID後就解決了這個問題 :P


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-07-09, 21:17 
離線

註冊時間: 2011-06-20, 09:03
文章: 12
我的datanode 啟動之後用 jps看 有起來
但不久之後就掛了
datanode log 檔 內容如下 為何會這樣呢???

2011-07-09 20:54:36,803 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG: host = lichihsan-laptop/127.0.1.1
STARTUP_MSG: args = []
STARTUP_MSG: version = 0.20.3-dev
STARTUP_MSG: build = -r ; compiled by 'lichihsan' on Fri Jul 8 15:56:13 CST 2011
************************************************************/
2011-07-09 20:54:45,882 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /var/hadoop/hadoop-lichihsan/dfs/data: namenode namespaceID = 92610914; datanode namespaceID = 494943734
at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)
at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:298)
at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:216)
at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1290)
at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1245)
at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1253)
at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1375)

2011-07-09 20:54:45,903 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at lichihsan-laptop/127.0.1.1
************************************************************/


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 請問HDFS的啟動問題
文章發表於 : 2011-07-09, 23:33 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
lisa 寫:
2011-07-09 20:54:45,882 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /var/hadoop/hadoop-lichihsan/dfs/data: namenode namespaceID = 92610914; datanode namespaceID = 494943734


這是一個很經典的錯誤,namespaceID 不同。
請參閱以前的討論 - viewtopic.php?p=149#p149

- Jazz


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

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


誰在線上

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


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

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