节点分布情况
(这里把HMaster和NameNode搭建在一个节点,但是实际开发中,别这样做)
前提条件(每个节点)
(1)Java环境变量
(2)时间同步
(3)主从免秘钥
(4)启动hadoop
-
配置hbase-site.xml
<property> <name>hbase.rootdir</name> <value>hdfs://mycluster/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>hadoop02,hadoop03,hadoop04</value> </property>
- 配置regionservers
- 新建并配置backup-masters
- 把hadoop目录下的hdsf-site.xml文件拷贝到hbase/conf目录下
- 修改hbase-env.sh(java环境配置以及不使用自带的zookeeper)
- 分发给hadoop02-04
- 启动
这个时候,如果只启动hbase,会发现master根本没有启动,可以去/hbase/conf/logs看日志:
[root@hadoop01 logs]# tail -400 hbase-root-master-hadoop01.log
通过查看日志可以得出zookeeper集群没有启动。所以再启动hbase之前,需要启动zookeeper。
zookeeper启动后,发现master已经成功启动了
在WebUI中查看:
http://hadoop01:60010
直接报错:
通过再次查看日志:
client.ZooKeeperRegistry: ClusterId read in ZooKeeper is null
client.HConnectionManager$HConnectionImplementation: clusterid came back null, using default default-cluster
说明不仅要启动zookeeper,还要启动hadoop集群,不然找不到集群id,我们在配置hbase中已经指定了集群为mycluster,所以必须要启动这个集群。
然后很开心的就可以在WebUI中查看了http://hadoop01:60010
这…
去region server节点查看日志:
org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server hadoop03,60020,1525076798186 has been rejected; Reported time is too far out of sync with master. Time
difference of 7775993114ms > max allowed of 30000ms
居然时间不同步???
我是用了date -s 设置的时间啊,怎么会不同步?原来是我同步时间的时候没有写年月日只写了时分秒。。。擦,这个低端的错误。
hadoop01节点时间居然是:2018-1-30 16:33:05
hadoop03节点时间居然是:2018-4-30 16:32:42,尼玛,正正差了三个月,这能启动才怪了。
重新同步一下:
date -s “2018-4-30 16:39:00”
再次启动: