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

相关文章
相关标签/搜索