HBase Note2:搭建

HBase Note2:搭建

准备

  1. 准备三个虚拟机:192.168.36.121 hadoop1192.168.36.122 hadoop2192.168.36.123 hadoop3
  1. 虚拟机上配置有ssh服务,可以进行免密登录
  1. 安装JDK
  1. 安装Hadoop集群并启动HDFS服务
  1. 安装zookeeper集群并启动

HBase版本

HBase与java版本

notion image

Hbase与Hadoop版本

notion image

Hbase与zookeeper版本

  • 基本都支持,理论上对应最新版本

我的版本

Hadoop
3.3.2
Zookeeper
3.7.0
Hbase
2.4.13

搭建

  • 使用自定义的Zookeeper

下载Hbase

notion image
notion image

解压安装

# 解压 root@redis01:/usr/local# tar -zxvf hbase-2.4.13-bin.tar.gz # 重命名 root@redis01:/usr/local# mv hbase-2.4.13 hbase
查看目录结构
notion image

配置环境变量

配置hbase-env.sh

在/hbase/conf目录下的hbase-env.sh中添加Hbase需要的环境变量
下面第四行注意这个值为false时,表示启动的是独立的zookeeper。而配置成true则是hbase自带的zookeeper。
root@redis01:/usr/local/hbase/conf# vim hbase-env.sh
添加如下信息
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export HBASE_HOME=/usr/local/hbase export PATH=$PATH:/usr/local/hbase/bin export HBASE_MANAGES_ZK=false export HADOOP_HOME=/usr/local/hadoop # 下面这句不添加打开hbase shell无法使用相关命令 export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true

配置hbase-site.xml

root@redis01:/usr/local/hbase/conf# vim hbase-site.xml
注意hbase.rootdir必须和你的namenode里面的hdfs的主机名和端口一样
<property> <name>hbase.rootdir</name> <value>hdfs://redis01:8020/hbase</value> <description>设置hbase的根目录,不需要自己创建,hbase会自动创建目录.</description> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> <description>设置Hbase为分布式模式,false是单机模式</description> </property> <!--配置zoopkeeper的集群--> <property> <name>hbase.zookeeper.quorum</name> <value>redis01:2181,redis02:2181,redis03:2181</value> </property> <!--zookooper配置、日志等的存储位置,必须为以存在 --> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/usr/local/zookeeper/zkData</value> </property> <!--配置Hbasede WebUI 界面--> <property> <name>hbase.master.info.port</name> <value>16010</value> </property>
  • hbase.rootdir这个目录是region server的共享目录,用来持久化Hbase。
  • hdfs://redis01:8020/hbase必须与你的Hadoop集群的core-site.xml文件配置中的端口号保持一致,并且该项并不识别IP,只能使用hostname。
  • hbase.cluster.distributed指定hbase的运行模式,false代表单机模式,true代表全分布模式。
  • hbase.zookeeper.quorum和hbase.zookeeper.property.dataDir是hbase中zookeeper相关的配置,其中hbase.zookeeper.quorum设置了hbase的zookeeper集群的地址列表,用逗号分隔,建议为奇数个数,其默认值为“localhost”,是给伪分布式用的。hbase.zookeeper.property.dataDir此项设置zookeeper快照存放的地址。
  • hbase.zookeeper.property.clientPort配置客户端连接的端口,如果没有配置,则使用hbase默认的端口号,即2181。
  • HBase无法在Web UI 上查看,是因为在1.0版本之后,默认不开启。所以需要手动设置。
    • hbase.master.info.port:HBase Master web 界面端口. 设置为-1 意味着你不想让他运行。
    • hbase.master.port:HBase的Master的端口.

配置regionservers

root@redis01:/usr/local/hbase/conf# vim regionservers
redis01 redis02 redis03
 

拷贝到各个从节点

将redis01配好文件分发给redis02、redis03机器。
root@redis01:/usr/local# xsync hbase

启动测试

# 启动Hadoop start-all.sh # 启动zookeeper /home/bigdata/bin/zk1.sh start # 启动HBase root@redis01:/usr/local/hbase/bin# ./start-hbase.sh
查看
notion image
notion image
notion image

查看Web

notion image
查看Hadoop中的HDFS,自动创建库habse库
notion image
默认创建
notion image
如果安装了独立的zookeeper
启动顺序: hadoop-> zookeeper-> hbase;
停止顺序:hbase-> zookeeper-> hadoop;
使用自带的zookeeper
启动顺序: hadoop-> hbase;
停止顺序:hbase-> hadoop;

启动

# 启动Hadoop start-all.sh # 启动zookeeper /home/bigdata/bin/zk1.sh start # 启动HBase root@redis01:/usr/local/hbase/bin# ./start-hbase.sh

停止

# 方式一:先停止HBase,这种方式会出现stopping hbase...... root@redis01:/usr/local/hbase/bin# ./stop-hbase.sh # 方式二:输入两个命令 ./hbase-daemon.sh stop master ./stop-hbase.sh # 停止zookeeper /home/bigdata/bin/zk1.sh stop # 停止Hadoop stop-all.sh