docker搭建hbase环境

    hbase是hadoop生态中的一员,最早搭建hbase,需要先安装hadoop,然后安装zookeeper,再安装hbase。现在通过docker可以直接安装hbase,而且容器中并不需要hadoop。

    安装很简单。直接拉取镜像,然后运行即可。

docker run -d --name hbase -p 2181:2181 -p 16010:16010 -p 16020:16020 -p 16030:16030 harisekhon/hbase

    这里注意一点,对于端口映射,hbase用到了很多端口,有的地方直接使用-P参数,而不是用-p做端口一一映射。 

docker run -d --name hbase -P harisekhon/hbase

    如果通过-P参数,会将容器内部所有监听的端口都映射为随机端口,我们可以看看容器状态:

[root@docker ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                                                                                                                                                                                                                 NAMES
748f76bf11f3        harisekhon/hbase    "/entrypoint.sh"    31 minutes ago      Up 31 minutes       0.0.0.0:32776->2181/tcp, 0.0.0.0:32775->8080/tcp, 0.0.0.0:32774->8085/tcp, 0.0.0.0:32773->9090/tcp, 0.0.0.0:32772->9095/tcp, 0.0.0.0:32771->16000/tcp, 0.0.0.0:32770->16010/tcp, 0.0.0.0:32769->16201/tcp, 0.0.0.0:32768->16301/tcp   hbase

    其中,16010端口是hbase提供的webui界面暴露的端口,映射为了32770,我们可以通过虚拟机地址,以及这个端口访问hbase webui。

     到了这里,通过web界面能够看到hbase状态,然后,可以进入容器,运行hbase shell,执行建表,添加数据,扫描数据都没有问题。但是如果外部程序,比如java需要操作hbase,就非常麻烦。

    所以,这里不建议直接使用-P(大写)的方式启动hbase。

    推荐的启动方式:docker run -d --name hbase -p 2181:2181 -p 16010:16010 -p 16020:16020 -p 16030:16030 harisekhon/hbase

    不推荐的启动方式:

### 构建和配置基于 DockerHBase 集群 #### 准备工作 为了成功部署HBase集群,需先确保操作系统满足最低内核版本需求。对于CentOS而言,应确认其内核不低于3.10版本[^3]。 ```bash uname -r ``` 接着安装Docker工具: ```bash yum -y install docker service docker start ``` 验证Docker安装无误后可尝试执行官方提供的`hello-world`镜像来检验环境设置是否正确。 ```bash docker run hello-world ``` #### 创建必要的网络结构 考虑到各组件间通信的需求,在启动任何服务之前定义一个自定义桥接网络是有益处的。这有助于简化容器间的连接管理并提高安全性。 ```bash docker network create hbase-net ``` #### 获取所需的基础镜像 根据项目具体要求选取合适的软件包版本。这里推荐采用Apache官方发布的稳定版作为基础构建材料之一[^2]。 - **ZooKeeper**: `zookeeper:latest` - **Hadoop**: `apache/hadoop:latest` - **HBase**: 可选用包含预集成依赖关系的复合型映像文件,比如由社区维护者分享于公共仓库中的实例[^4] #### 编写Compose文件描述整个架构布局 编写一份YAML格式的服务编排脚本用于自动化多节点分布式系统的初始化流程。下面给出了一种可能的设计方案片段供参考: ```yaml version: '3' services: zookeeper: image: zookeeper:latest networks: - hbase-net namenode: image: apache/hadoop:latest environment: CORE_CONF_fs_defaultFS: hdfs://namenode:8020 ports: - "50070:50070" networks: - hbase-net datanode: image: apache/hadoop:latest depends_on: - namenode environment: CORE_CONF_fs_defaultFS: hdfs://namenode:8020 networks: - hbase-net master: image: apachecn/hbase:2.5.10 environment: HBASE_MANAGES_ZK: false ZOOKEEPER_QUORUM: zookeeper HBASE_REGIONSERVERS: regionserver links: - zookeeper - namenode ports: - "16010:16010" networks: - hbase-net regionserver: image: apachecn/hbase:2.5.10 depends_on: - master environment: HBASE_MANAGES_ZK: false ZOOKEEPER_QUORUM: zookeeper links: - zookeeper - master networks: - hbase-net networks: hbase-net: external: true ``` 上述配置中指定了各个组成部分之间的关联方式以及对外暴露端口的信息以便后续访问控制和服务发现机制正常运作。 #### 执行命令启动集群 保存好`.env`与`docker-compose.yml`之后便可以调用如下指令一次性拉起全部必要设施: ```bash docker-compose up -d ``` 等待一段时间直至所有进程都进入健康状态即可认为初步搭建完毕。此时应该能够通过浏览器或者其他客户端程序接入到相应模块所提供的功能界面当中去进一步探索学习了。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luffy5459

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值