hadoop coulud 2.x部署一點兒心得

最近在部署hadoop-cloudera-beta2,遇到一個很頭疼的問題;java

在從NN執行hdfs namenode –bootstrapStandby的時候老是執行失敗,異常以下:node

org.apache.hadoop.hdfs.server.common.Storage: Lock on 
/u0_pool/hadoop-hadoop/dfs/name/in_use.lock acquired by nodename 
4654@warehouse1 
 2013-08-13 06:35:35,448 INFO org.apache.hadoop.hdfs.server.common.Storage: Locking is disabled 
 2013-08-13 06:35:35,487 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Stopping NameNode metrics system... 
 2013-08-13 06:35:35,488 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system stopped. 
 2013-08-13 06:35:35,488 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: NameNode metrics system shutdown complete. 
 2013-08-13 06:35:35,490 FATAL org.apache.hadoop.hdfs.server.namenode.NameNode: Exception in namenode join 
 org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: 
Directory /u1_pool/namenode is in an inconsistent state: namespaceID is 
incompatible with others. 
         at org.apache.hadoop.hdfs.server.common.Storage.setNamespaceID(Storage.java:1090) 
         at org.apache.hadoop.hdfs.server.common.Storage.setFieldsFromProperties(Storage.java:888)

格式化不成功,至於爲何沒成功,多是權限問題或者是有其餘進程在使用,apache

解決方案是將主NN的dir.name.下的current拷貝到從NN的相同目錄文件夾下,再次運行上述命令。bootstrap

由此能夠看出其實配置HA主從NN持有相同的元數據,客戶端經過訪問nameservice域名空間,經過域名空間尋找處於Active狀態的的NN,能夠認爲其實就是一個NN,那麼若是才能保證兩個NN持有相同的元數據呢,這就用到了QJM了,見博客http://my.oschina.net/u/1169079/blog/227208。運用到的思想相似HDFS,——分而治之。oop

打個比喻:兩個門衛,有車輛經過時,他們會把車輛信息記錄在一個共同的本子上,若是第一個門衛有事請假,ok第二個門衛就能夠經過這個本子得到之前車輛過往信息。這個本子就是兩個主從NN共享的。
ui

相關文章
相關標籤/搜索