主机修改了新的hostname,同时修改了master,regionserver节点,但是启动时发现仍然会解析老的hostnames,报告如下异常:
13:21:04,340 INFO org.apache.hadoop.hbase.master.HMaster: -ROOT- assigned=0, rit=false, location=XXXXX:60020
13:21:04,807 ERROR org.apache.hadoop.hbase.HServerAddress: Couldnot resolve the DNS name ofXXXX:60020
13:21:04,808 FATAL org.apache.hadoop.hbase.master.HMaster:
Unhandled exception. Starting shutdown.
java.lang.IllegalArgumentException: Could not resolve the DNS name of XXXXXXXX:60020at org.apache.hadoop.hbase.HServerAddress.checkBindAddressCanBeResolved(HServerAddress.java:105)
试了很多办法,都没有解决,最后查资料发现是hbase的一个bug,bug解释如下:
https://issues.apache.org/jira/browse/HBASE-3478
原因:hostnames被存在.meta表里,但是修改了新的hostname之后,因为hbase自身没有检测机制,所以不会对原来的hostname更新,导致还是访问老的hostname,
使得程序无法起动。
最后为了省事直接format namenode,删除dn里数据,问题解决。
生产环境可以修改.meta表内,hostname映射关系,后期有时间会进行相应验证