在slave3上jps,发现没有HQuorumPeer
查看log
cd /usr/local/hbase/logs
tail -n 100 hbase-hadoop-regionserver-slave3-t.log
发现报错:
2018-03-09 13:26:00,207 INFO [regionserver/slave3-t/192.168.8.73:16020] regionserver.HRegionServer: STOPPED:Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException:Server slave3-t,16020,1520573142864 has been rejected;Reported time is too far out of sync with master. Timedifference of 42951ms > max allowed of 30000ms
解决方法:
把slave3-t的时间设为与master-t同步:
[root@node1 ~]# ntpdate master-t
27 Feb 10:10:15 ntpdate[32724]: adjust time server 192.168.217.130 offset -0.170230 sec
注意,在我的master机器上,各节点的名字是这样的,所以ntpdate后面接的名字必须与hosts文件中的一致。
hadoop@master-t:~$ cat /etc/hosts
127.0.0.1 localhost
192.168.8.70 master-t
192.168.8.71 slave1-t
192.168.8.72 slave2-t
192.168.8.73 slave3-t
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
hadoop@master-t:~$
【注意】
(1)网上,找了很多帖子,写的都是遇到这个问题要重启zookeeper啥的,我目前暂不知道zookeeper怎么重启,没找到配置文件,不知道zookeeper的安装路径。我就是把slave3-t的时间同步了一下。
(2)有时候,时间不同步会引起很多问题,而且不一定会有类似 Time difference of 42951ms > max allowed of 30000ms这种报错。比如我今天遇到了什么java vm内存不够,启动base启动失败,jps报错 java.lang.OutOfMemoryError: unable to create new native thread 等等,我一查几个节点的时间,相差20多分钟。。。天哪,肯定会出现问题。
(3)改完设置,要等五分钟,要不然报错"no server suitable for synchronization found" 。亲历。真的。
如果要在slave机器上,设定时,与master同步,一定要root账号去执行。
就是切换为root账号,然后去 crontab -e。 类似下面这样:
[root@node1 ~]# crontab -l
* */1 * * * /usr/sbin/ntpdate master