今天是個特殊的日子,早上騰訊的一些服務掛了(騰訊旗下QQ郵箱、QQ群共享、群相冊、QQ互聯等服務出現大面積登陸故障),結果下午是全國頂級域名根服務器出現了故障,導致許多網站無法訪問(全國所有通用頂級域的根出現異常,導致部分國內用戶無法訪問.com域名網站,對全國互聯網鏈接造成系統性影響)。
騰訊http://tech.163.com/14/0121/11/9J40AHG7000915BF.html
域名新聞http://china.haiwainet.cn/n/2014/0121/c345646-20194770.html
上面的是今天互聯網行業的兩大新聞了。下面來說一下今天我遇到的問題。
今天更改了一些hbase的部署,結果竟然啟動不了了,查看日志原因大概意思是說不能分配請求的地址。
日志異常信息:
DEBUG org.apache.hadoop.hbase.master.HMaster: Set serverside HConnection retries=140
2014-01-21 09:10:55,878 ERROR org.apache.hadoop.hbase.master.HMasterCommandLine: Failed to start master
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2106)
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:152)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:104)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2120)
Caused by: java.net.BindException: Cannot assign requested address
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:124)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:59)
at org.apache.hadoop.hbase.ipc.HBaseServer.bind(HBaseServer.java:256)
at org.apache.hadoop.hbase.ipc.HBaseServer$Listener.<init>(HBaseServer.java:482)
at org.apache.hadoop.hbase.ipc.HBaseServer.<init>(HBaseServer.java:1559)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.<init>(WritableRpcEngine.java:255)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getServer(WritableRpcEngine.java:204)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getServer(WritableRpcEngine.java:56)
at org.apache.hadoop.hbase.ipc.HBaseRPC.getServer(HBaseRPC.java:330)
at org.apache.hadoop.hbase.ipc.HBaseRPC.getServer(HBaseRPC.java:319)
at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:311)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2101)
... 5 more
查了一下原因,原來是我配置中映射的主機名和現在的主機名不否。
具體修改如下:
1、 vi /etc/sysconfig/network
HOSTNAME=
master(master就是需要修改的主機名)
2、修改wannetwork文件后,通過命令hostname master是配置生效。(可以通過命令hostname直接查看是否修改)
3、重新啟動hbase就好了。