天天看點

Hbase叢集搭建最常見的問題及解決辦法

問題一:使用自己搭建的zookeeper叢集而不使用hbase自帶的zookeeper解決辦法?

首先:在hbase-env.sh中修改如下參數:

Hbase叢集搭建最常見的問題及解決辦法

屏蔽hbase自帶的zookeeper

問題二:通過start-abase.sh啟動hbase叢集發現從節點報如下錯誤:

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

出現該問題的原因:因為整個叢集時間沒有統一,導緻master連接配接slave逾時,是以導緻從節點的HRegionServer程序沒有正常啟動,

解決辦法:

1⃣️.在hbase-site.xml檔案中 修改增加 ,将時間改大點

<property>

  <name>hbase.master.maxclockskew</name>

  <value>150000</value>

</property>

2⃣️.修改日期

date -s 11/23/2013

修改時間

date -s 15:14:00

檢查硬體(CMOS)時間

clock -r

這個修改在系統重新開機後就失效了,是以為了将這個時間永久生效,需要将修改的時間寫入CMOS。

clock -w

最後,關閉所有hbase叢集的程序,重新開機啟動,需要注意的一點是,在啟動hbase叢集前,先自己手動啟動zookeeper叢集