背景
第一次安装hbase,只了解些基础,是在虚拟机上安装的,os:centos7
步骤
网上都有,hbase的单例安装尤其非常简单,但是,我就在最简单的步骤上就犯错了,定位了一晚上,我就想不明白了,最简单的步骤为什么偏偏在我这就行不通
错误
2016-12-11 22:39:48,658 INFO [main] regionserver.RSRpcServices: master/cayman.ispgateway.de/46.252.18.186:16020 server-side HConnection retries=350
2016-12-11 22:39:48,870 INFO [main] ipc.SimpleRpcScheduler: Using deadline as user call queue, count=3
2016-12-11 22:39:48,881 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2002)
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:203)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2016)
Caused by: java.net.BindException: 无法指定被请求的地址
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2419)
at org.apache.hadoop.hbase.ipc.RpcServer$Listener.<init>(RpcServer.java:538)
at org.apache.hadoop.hbase.ipc.RpcServer.<init>(RpcServer.java:1917)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:812)
at org.apache.hadoop.hbase.master.MasterRpcServices.<init>(MasterRpcServices.java:196)
at org.apache.hadoop.hbase.master.HMaster.createRpcServices(HMaster.java:477)
at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:492)
at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:333)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:1997)
... 5 more
打起精神,静下心来定位
- 一遍一遍检查hbase-env.sh,hbase-site.xml.OK,没问题
- 再看一遍堆栈日志,有一行很关键,是导致地址无法绑定的主要原因
2016-12-11 22:39:48,658 INFO [main] regionserver.RSRpcServices: master/cayman.ispgateway.de/46.252.18.186:16020 server-side HConnection retries=350
为啥hostname老是定位到这样一个莫名奇妙的域名,检查一下我的网络配置
ifconfig
原来我有一张网卡,连着外网,我猜测这个有影响,把网卡断掉
ifdown <网卡号>
果然,启动不会报错了!!!!