下載Hbase安裝包,並解壓
1、修改hbase-1.2.6/conf/hbase-env.sh 配置文件
export JAVA_HOME=/apps/jdk1.8.0_171
export HADOOP_HOME=/apps/hadoop-2.8.0 #配置hadoop變量,否則hbase不識別hdfs集羣名
export HBASE_HOME=/apps/hbase-1.2.6
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_MANAGES_ZK=fales #不使用hbase自帶的zookeeper,使用搭建的zk集羣。
export HBASE_CLASSPATH=${HBASE_HOME}/conf
2、修改hbase-1.2.6/conf/hbase-site.xml
<configuration>
<!-- 指定hbase在hdfs上的目錄,沒有會自動創建 -->
<!-- 因爲hadoop是高可用,所以hbase.rootdir的地址必須和
hadoop的配置文件core-site.xml下的fs.Defalut一樣-->
<property>
<name>hbase.rootdir</name>
<value>hdfs://ns/hbase</value>
</property>
<!-- 指定hbase是分佈式的,否則會工作在單機模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>hdfs://host1:60000</value>
</property>
<!-- 指定zk的地址,多個用“,”分割 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master.hadoop:2181,slave1.hadoop:2181,slave2.hadoop:2181</value>
<description>Comma separated list of servers in the ZooKeeper Quorum. For example, "host1.mydomain.com,host2.mydomain.com,host3.mydomain.com". By default this is set to localhost for local and pseudo-distributed modes of operation. For a fully-distributed setup, this should be set to a full list of ZooKeeper quorum servers. If HBASE_MANAGES_ZK is set in hbase-env.sh this is the list of servers which we will start/stop ZooKeeper on. </description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/zookeeper</value>
<description>Property from ZooKeeper's config zoo.cfg. The directory where the snapshot is stored. </description>
</property>
</configuration>
3、修改hbase-1.2.6/conf/regionservers配置文件
master.hadoop
slave1.hadoop
slave2.hadoop
4、現將Hbase文件分發到所有機器上,然後啓動Hbase
!!!同步時間,很必要
啓動zookeeper
啓動hdfs
啓動Hbase
[root@master conf]# start-hbase.sh
啓動另一臺HMaster
[root@slave1 bin]# hbase-daemon.sh start master
5、然後查看web界面,端口是16010
這是master(master.hadoop:16010)
這是備用master(slave1.hadoop:16010)
如果時間不同步可能會出錯
2018-07-17 02:48:42,017 INFO [regionserver/slave1.hadoop/192.168.1.3:16020] regionserver.HRegionServer: STOPPED: Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server slave1.hadoop,16020,1531766918607 has been rejected; Reported time is too far out of sync with master. Time difference of 19290946ms > max allowed of 30000ms
at org.apache.hadoop.hbase.master.ServerManager.checkClockSkew(ServerManager.java:409)
at org.apache.hadoop.hbase.master.ServerManager.regionServerStartup(ServerManager.java:275)
at org.apache.hadoop.hbase.master.MasterRpcServices.regionServerStartup(MasterRpcServices.java:361)
at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:8615)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2196)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:112)
at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$1.run(RpcExecutor.java:108)
at java.lang.Thread.run(Thread.java:748)
搭建完畢!