hadoop coulud 2.x部署一点儿心得

最近在部署hadoop-cloudera-beta2,遇到一个很头疼的问题;

在从NN执行hdfs namenode –bootstrapStandby的时候总是执行失败,异常如下:

			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)

格式化不成功,至于为什么没成功,可能是权限问题或者是有其他进程在使用,

解决方案是将主NN的dir.name.下的current拷贝到从NN的相同目录文件夹下,再次运行上述命令。

由此可以看出其实配置HA主从NN持有相同的元数据,客户端通过访问nameservice域名空间,通过域名空间寻找处于Active状态的的NN,可以认为其实就是一个NN,那么如果才能保证两个NN持有相同的元数据呢,这就用到了QJM了,见博客http://my.oschina.net/u/1169079/blog/227208。运用到的思想类似HDFS,——分而治之。

打个比喻:两个门卫,有车辆通过时,他们会把车辆信息记录在一个共同的本子上,如果第一个门卫有事请假,ok第二个门卫就可以通过这个本子获得以前车辆过往信息。这个本子就是两个主从NN共享的。


你可能感兴趣的:(hadoop coulud 2.x部署一点儿心得)