1. 背景

HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 Bigtable :一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

因为在实际项目中需要使用到 Hbase 帮助我们存储离散型的文本文件,以前我们都是通过 FastDFS,但它受制于 FastDFS 自身一些问题不能很好满足我们的实际业务需要,例如对指定单个文件的操作以及在开放的访问方式上。所以我们最终选型在 Hbase 。

2. 环境准备

我通过在 Windows 10 操作系统的虚拟机,安装的 CentOS 7.0CentOS 是最小安装版,安装后需要将服务器内核和补丁全部更新一遍。

CentOS 安装 Docker 后,可以查看 Docker 版本为 20.10.17 ,截止当前是 Docekr 社区版当中的最新版本。

  • Windows 10 Home 64bit
  • VMware Workstation Pro 16
  • CentOS 7.0
  • docker
Client: Docker Engine - Community
 Version:           20.10.17
 API version:       1.41
 Go version:        go1.17.11
 Git commit:        100c701
 Built:             Mon Jun  6 23:05:12 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.17
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.17.11
  Git commit:       a89b842
  Built:            Mon Jun  6 23:03:33 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.6
  GitCommit:        10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
 runc:
  Version:          1.1.2
  GitCommit:        v1.1.2-0-ga916309
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

3. 安装

  • Docker 仓库中查找 hbase 的镜像,这里选择 STARS 最多的,都比较靠谱。
docekr search hbase

Hbase集群搭建docker镜像 hbase docker_Docker

  • 确定了我们要的版本名称,此时我们从仓库中直接拉取 hbase 镜像,拉取过程中受制于网络等影响,所以建议提前更换 Docker 的中央仓库地址,更改方式参考 [[Docker-1:Docker安装及更换源]] 中的操作。
docekr pull hbase

Hbase集群搭建docker镜像 hbase docker_Hadoop_02

  • 小结,这里我们完成了将 hbase 镜像的检索和下载,至此,我们的前期准备工作已经完成。

4. 启动

启动命令要注意,宿主机和镜像端口间的映射,这样本机正常访问。我们后续也是为了通过 Java API 操作 Hbase

docker run -d -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095 -p 16000:16000 -p 16010:16010 -p 16201:16201 -p 16301:16301  -p 16030:16030 -p 16020:16020 --name hbaseCase harisekhon/hbase

这里把 Hbase 默认的端口一并罗列,对照着启动命令的映射关系,自己按照实际需要定制。

端口号

节点

使用

说明

2181

zookeeper

zkCli.sh -server zookeeper1:2181

客户端接入

16000

HBase Master

hbase-client-1.x.x.jar

RegionServer接入

16010

HBase Master

http://namenode1:16010/

集群监控

16020

HBase RegionServer

客户端接入

16030

HBase RegionServer

http://datanode1:16030/

节点监控

打开网址: http://192.168.147.128:16010/master-status

Hbase集群搭建docker镜像 hbase docker_CentOS_03

5. Host文件设置

如果在本地访问 Hbase 的网址,还需要在 HOST 文件中添加, Hbase 与域名的映射。

192.168.147.128 b78d142ca272

Hbase集群搭建docker镜像 hbase docker_Hbase集群搭建docker镜像_04

6. 环境变脸

实际项目,我们都是在开发环境利用 Java 来操作 Hbase ,所以还需要在本地配置下 Hadoop 环境变量。

这里我用我本地的环境做说明:

  • HODOOP_HOME: D:\Environment\Hadoop\2.10.1

Hbase集群搭建docker镜像 hbase docker_Hadoop_05

  • PATH: %HODOOP_HOME%\bin

Hbase集群搭建docker镜像 hbase docker_Docker_06