某天早晨修改了hbase集群中一个节点的主机名称,结果HMaster没法启动。java
主机修改了新的hostname,同时修改了master,regionserver节点,并修改了/etc/hosts,可是启动时发现仍然会解析老的hostnames,报告以下异常:node
2012-09-04 11:13:26,215 ERROR org.apache.hadoop.hbase.HServerAddress: Could not resolve the DNS name of XXX
2012-09-04 11:13:26,216 FATAL org.apache.hadoop.hbase.master.HMaster: Unhandled exception. Starting shutdown.
java.lang.IllegalArgumentException: hostname can't be null
...................................
重启服务器仍旧报出以上错误。
最发现是hbase的一个bug,bug解释以下https://issues.apache.org/jira/browse/HBASE-3478 (找到这个的时候,无语了也豁达了!!!)apache
缘由:hostnames被存在.meta表里,可是修改了新的hostname以后,由于hbase自身没有检测机制,因此不会对原来的hostname更新,致使仍是访问老的hostname,使得程序没法起动。服务器
由于是测试环境为了省事直接format namenode,删除dn里数据,问题解决。oop