搭建完全分布式的HBASE。前提条件:已安装配置Java,已正确安装配置HDFS、Zookeeper,HDFS和Zookeeper已运行。已配置主机免密登录。示例使用的主机名是hdp151,hdp152,hdp153,hdfs是hdfs://hdp151:9000,JAVA_HOME是/usr/local/java/jdk1.8.0_261
我们下面的操作在hdp151这台主机上进行:
第一步,下载hbase软件包,保存到/opt目录,然后解压到/opt/hbase目录:
mkdir -p /opt/hbase
wget -P /opt https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.2.6/hbase-2.2.6-bin.tar.gz
cd /opt && tar -zxf hbase-2.2.6-bin.tar.gz -C /opt/hbase
第二步,进入HBASE软件目录的conf目录,修改hbase-env.sh,设置JAVA_HOME环境变量。由于我已配置了外部的Zookeeper,因此要加修改HBASE_MANAGES_ZK为false,不要HBASE接管Zookeeper。hbase-env.sh添加的内容如下:
export JAVA_HOME=/usr/local/java/jdk1.8.0_261
export HBASE_MANAGES_ZK=false
第三步,修改conf目录中的hbase-site.xml文件,内容如下:
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hdp151:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hdp151,hdp152,hdp153</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
第四步,修改conf目录中的regionservers文件,在里面添加作为RegionServer的主机名,每个一行:
hdp151
hdp152
hdp153
第五步,在conf目录中创建backup-masters文件,在里面添加备用Hbase Master的主机名,这里使用hdp152作为备用Hbase Master:
hdp152
第五步,将HADOOP集群的core-site.xml、hdfs-site.xml以及Zookeeper的zoo.cfg这三个配置文件复制到HBASE的conf目录。也可以通过ln -s 命令创建符号链接,将文件链接到HADOOP和Zookeeper的配置文件。修改完成后,conf目录的配置文件如下:
第六步,在/etc/profile.d/文件夹中创建custom.sh文件,添加环境变量HBASE_HOME和PATH:
export HBASE_HOME=/opt/hbase/hbase-2.2.6
export PATH=$PATH:$HBASE_HOME/bin
第七步,将/opt/hbase目录复制到hdp152和hdp153这两台主机上:
scp -r /opt/hbase hdp152:/opt
scp -r /opt/hbase hdp153:/opt
第八步,将/etc/profile.d/custom.sh复制到hdp152和hdp153,并重新加载/etc/profile:
scp /etc/profile.d/custom.sh hdp152:/etc/profile.d/custom.sh
scp /etc/profile.d/custom.sh hdp153:/etc/profile.d/custom.sh
source /etc/profile
ssh hdp152 "source /etc/profile"
ssh hdp153 "source /etc/profile"
第九步,启动hbase:
start-hbase.sh
至此,HBASE安装配置完成,可通过访问http://hdp151:16010/master-status查看HBAS状态信息,如果不能访问,请检查是否打开了防火墙端口,或者本机的hosts文件是否设置了hdp151、152、153的主机名对应IP地址:
hosts文件设置:
通过jps命令查看这三台主机的Java进程,NameNode、DataNode、SecondaryNameNode是HDFS的进程,ResourceManager、NodeManager、JobHistoryServer是Yarn相关的进程,QuorumPeerMain是Zookeeper的进程,HMaster、HRegionServer是HBASE的进程。