問題一:使用自己搭建的zookeeper集群而不使用hbase自帶的zookeeper解決辦法?
首先:在hbase-env.sh中修改如下參數(shù):

問題二:通過start-abase.sh啟動(dòng)hbase集群發(fā)現(xiàn)從節(jié)點(diǎn)報(bào)如下錯(cuò)誤:
30 14:02:05,999 FATAL [regionserver60020] regionserver.HRegionServer: Master rejected startup because clock is out of sync
org.apache.hadoop.hbase.ClockOutOfSyncException:?org.apache.hadoop.hbase.ClockOutOfSyncException:?Server?heres01,60020,1493532120370?has?been?rejected;?Reported?time?i
s?too?far?out?of?sync?with?master.??Time?difference?of?2421573ms>max?allowed?of?30000ms
at?org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:314)
at?org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:215)
at?org.apache.hadoop.hbase.master.HMaster.regionServerStartup(HMaster.java:1292)
at?org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:5085)
at?org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)
at?org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889)
at?sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native?Method)
at?sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at?sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at?java.lang.reflect.Constructor.newInstance(Constructor.java:526)
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:277)
at?org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:1955)
at?org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:794)
at?java.lang.Thread.run(Thread.java:745)
Caused?by:?org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.ClockOutOfSyncException):?org.apache.hadoop.hbase.ClockOutOfSyncException:?Ser
ver?heres01,60020,1493532120370?has?been?rejected;?Reported?time?is?too?far?out?of?sync?with?master.??Time?difference?of?2421573ms>max?allowed?of?30000ms
at?org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:314)
at?org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:215)
at?org.apache.hadoop.hbase.master.HMaster.regionServerStartup(HMaster.java:1292)
at?org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:5085)
at?org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2185)
at?org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1889)
at?org.apache.hadoop.hbase.ipc.RpcClient.call(RpcClient.java:1454)
at?org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1658)
at?org.apache.hadoop.hbase.ipc.RpcClient$BlockingRpcChannelImplementation.callBlockingMethod(RpcClient.java:1716)
at?org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$BlockingStub.regionServerStartup(RegionServerStatusProtos.java
:5402)
at?org.apache.hadoop.hbase.regionserver.HRegionServer.reportForDuty(HRegionServer.java:1953)
...?2?more
出現(xiàn)該問題的原因:因?yàn)檎麄€(gè)集群時(shí)間沒有統(tǒng)一,導(dǎo)致master連接slave超時(shí),所以導(dǎo)致從節(jié)點(diǎn)的HRegionServer進(jìn)程沒有正常啟動(dòng),
解決辦法:
1??.在hbase-site.xml文件中 修改增加 ,將時(shí)間改大點(diǎn)
<property>
? <name>hbase.master.maxclockskew</name>
? <value>150000</value>
</property>
2??.修改日期
date -s 11/23/2013
修改時(shí)間
date -s 15:14:00
檢查硬件(CMOS)時(shí)間
clock -r
這個(gè)修改在系統(tǒng)重啟后就失效了,因此為了將這個(gè)時(shí)間永久生效,需要將修改的時(shí)間寫入CMOS。
clock -w