问题导读: 相关端口中2888端口是用来做什么的? 用于Leader选举的是哪个端口? HMaster的http端口是哪个? hbase.master.info.port作用是什么? 备HMaster配置该如何配置? Host key not found from database错误的可能原因是什么? Failed deleting my ephemeral node错误的可能原因是什么?
1) 设置JAVA_HOME
# The java implementation to use. Java 1.6 required.
export JAVA_HOME=/data/jdk
上述/data/jdk是JDK的安装目录。 2) 设置HBASE_MANAGES_ZK
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false
1) 错误1:Host key not found from database
遇到如下错误,说明不能免密码登录DEVNET-154-70、DEVNET-154-77和DEVNET-154-79,假设用户名为hadoop,则可以试试ssh hadoop@DEVNET-154-70来检查是否能免密码登录:
./start-hbase.sh
DEVNET-154-70: Host key not found from database.
DEVNET-154-70: Key fingerprint:
DEVNET-154-70: xihad-rotuf-lykeh-mapup-kylin-kybub-sohid-bucaf-gafyg-vecuc-tyxux
DEVNET-154-70: You can get a public key's fingerprint by running
DEVNET-154-70: % ssh-keygen -F publickey.pub
DEVNET-154-70: on the keyfile.
DEVNET-154-70: warning: tcgetattr failed in ssh_rl_set_tty_modes_for_fd: fd 1: Invalid argument
DEVNET-154-77: Host key not found from database.
DEVNET-154-77: Key fingerprint:
DEVNET-154-77: xuhog-tavip-donon-vuvac-tycyh-sysyz-zacur-didoz-fugif-vosar-ruxyx
DEVNET-154-77: You can get a public key's fingerprint by running
DEVNET-154-77: % ssh-keygen -F publickey.pub
DEVNET-154-77: on the keyfile.
DEVNET-154-77: warning: tcgetattr failed in ssh_rl_set_tty_modes_for_fd: fd 1: Invalid argument
DEVNET-154-79: Host key not found from database.
DEVNET-154-79: Key fingerprint:
DEVNET-154-79: xolim-mysyg-bozes-zilyz-futaf-tatig-zaryn-pilaf-betyf-meduf-tixux
DEVNET-154-79: You can get a public key's fingerprint by running
DEVNET-154-79: % ssh-keygen -F publickey.pub
DEVNET-154-79: on the keyfile.
DEVNET-154-79: warning: tcgetattr failed in ssh_rl_set_tty_modes_for_fd: fd 1: Invalid argument
2) 错误2:Failed deleting my ephemeral node
原因可能是因为之前配置错误,比如使用HBase自带的ZooKeeper启动过,后改为使用外围的ZooKeeper再启动。
2014-04-22 16:26:17,452 WARN [regionserver60020] zookeeper.RecoverableZooKeeper: Node /hbase/rs/DEVNET-154-79,60020,1398155173411 already deleted, retry=false
2014-04-22 16:26:17,453 WARN [regionserver60020] regionserver.HRegionServer: Failed deleting my ephemeral node
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /hbase/rs/DEVNET-154-79,60020,1398155173411
at org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.delete(ZooKeeper.java:873)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.delete(RecoverableZooKeeper.java:156)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.deleteNode(ZKUtil.java:1273)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.deleteNode(ZKUtil.java:1262)
at org.apache.hadoop.hbase.regionserver.HRegionServer.deleteMyEphemeralNode(HRegionServer.java:1273)
at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:1003)
at java.lang.Thread.run(Thread.java:744)
3) 错误3:Master rejected startup because clock is out of sync
来自RegionServer端的日志,HMaster拒绝RegionServer的连接。这个错误是因为HMaster上的时间和RegionServer上的时间相差超过30秒。 两种解决办法:
一是同步时间,
二是修改hbase-site.xml中的hbase.master.maxclockskew(HMaster端的hdfs-site.xml文件):。
2014-04-22 16:34:36,701 FATAL [regionserver60020] regionserver.HRegionServer: Master rejected startup because clock is out of sync
org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server DEVNET-154-79,60020,1398155672511 has been rejected; Reported time is too far out of sync with master. Time difference of 175968ms > max allowed of 30000ms
at org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:316)
at org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:216)
at org.apache.hadoop.hbase.master.HMaster.regionServerStartup(HMaster.java:1281)
at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:5085)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2008)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:92)
at org.apache.hadoop.hbase.ipc.FifoRpcScheduler$1.run(FifoRpcScheduler.java:73)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)
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:408)
at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:106)
at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:95)
at org.apache.hadoop.hbase.protobuf.ProtobufUtil.getRemoteException(ProtobufUtil.java:284)
at org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:1998)
at org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:839)
at java.lang.Thread.run(Thread.java:744)
将hbase.master.maxclockskew改成可以容忍10分钟:
<property>
<name>hbase.master.maxclockskew</name>
<value>600000</value>
<description>Time(ms) difference of regionserver from master</description>
</property>