# docker-hbase **Repository Path**: percylee514/docker-hbase ## Basic Information - **Project Name**: docker-hbase - **Description**: Hadoop+HBase+Phoneix Docker 快速部署,用于快速构建开发环境 - **Primary Language**: Shell - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 23 - **Created**: 2021-09-16 - **Last Updated**: 2021-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README [![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.png)](https://gitter.im/big-data-europe/Lobby) # docker-hbase-phoenix ### Docker HBase + Phoenix 开发环境单机快速部署
## 项目简介 基于 [**big-data-europe**](https://github.com/big-data-europe/docker-hbase) 的仓库代码修改,主要升级了 HBase 版本到 2.X, 增加 Phoenix 的配置,增加 HBase 对 Hadoop 共享库的配置,同时修改 HBase 组件由 http 下载为本地二进制包拷贝(天朝的墙....),减少构建过程中键盘被砸坏的风险。 主要组件版本如下: * Hadoop-2.7.4 * Zookeeper-3.4.10 * HBase-2.0.0 * Phoenix-5.0.0
## 使用过程 ### 下载仓库 仓库中包含完整的 `hbase-2.0.0-bin.tar.gz` 二进制包和 `phoenix-5.0.0-hbase-2.0.tar.gz` 中的 `phoenix-5.0.0-server.jar` ,仓库体积比较大,这也是无奈,毕竟在国内从 apache 历史仓库下载 hbase 历史版本的体验简直就是噩梦。 ``` git clone https://github.com/Al-assad/docker-hbase.git ``` 国内环境可以从 gitee 镜像仓库下载,毕竟 github 小水管不是吹的; ``` git clone https://gitee.com/assad/docker-hbase.git ```
### 构建镜像 docker-compose 构建基础镜像。 ``` make build ```
### 运行 Standalone 版本 `Standalone` 版本依赖结构与 [quickstart HBase documentation](https://hbase.apache.org/book.html#quickstart) 一致,只不过使用了 `Hadoop` 的 `HDFS` 版本作为底层储存。 主要用于开发测试环境的快速搭建。 ``` docker-compose -f docker-compose-standalone.yml up -d ```
### 运行 Local Distributed 伪分布式版本 运行该版本会使用一个独立的 `Zookeeper`,`HMaster` 节点和 `HResgionserver` 节点也会分开为独立容器。 ``` docker-compose -f docker-compose-distributed-local.yml up -d ``` 启动完成后,可以访问下面的地址来查看集群的详细信息。 http://192.168.0.192:16010/ 测试 HBase是一个面向列的数据库,在表中它由行组成。表模式只定义列族,也就是键值对。一个表有多个列族,每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。 表是行的集合。 行是列族的集合。 列族是列的集合。 列是键值对的集合。 集群启动后,我们可以使用hbase自带的shell来做一些数据库操作,如下: # 启动shell $ bin/hbase shell # 创建 user 表,其中包括两个列族 base 和 address。 # base列族用来保存用户基本信息,username和password # address列族用来保存家庭和办公地址 > create 'user', 'base', 'address' Created table user Took 2.9153 seconds # 查看 user 表 > list 'user' TABLE user 1 row(s) Took 0.1178 seconds # 向 user 表写入数据 > put 'user', 'row1', 'base:username', 'user1' > put 'user', 'row1', 'base:password', 'user1' > put 'user', 'row1', 'address:home', 'user1 home' > put 'user', 'row1', 'address:office', 'user1 office' > put 'user', 'row2', 'base:username', 'user2' > put 'user', 'row2', 'base:password', 'user2' > put 'user', 'row2', 'address:home', 'user2 home' > put 'user', 'row2', 'address:office', 'user2 office' # 查询 user 表中的数据 > scan 'user' ROW COLUMN+CELL row1 column=address:home, timestamp=1516586881667, value=user1 home row1 column=address:office, timestamp=1516586887852, value=user1 office row1 column=base:password, timestamp=1516586875823, value=user1 row1 column=base:username, timestamp=1516586869321, value=user1 row2 column=address:home, timestamp=1516586916024, value=user2 home row2 column=address:office, timestamp=1516586922659, value=user2 office row2 column=base:password, timestamp=1516586946567, value=user2 row2 column=base:username, timestamp=1516586910234, value=user2 # 查询 user 表的一行数据 > get 'user', 'row1' get 'user', 'row1' COLUMN CELL address:home timestamp=1516586881667, value=user1 home address:office timestamp=1516586887852, value=user1 office base:password timestamp=1516586875823, value=user1 base:username timestamp=1516586869321, value=user1 # 删除 user 表的一行数据 > delete 'user', 'row2' # 删除 user 表。需要先disable user表,然后才能删除。 > disable 'user' > drop 'user'
### 端口说明 | 节点 | 端口号 | 协议 | 使用 | 说明 | | :--------------------- | :----- | :---------------------- | :---------------------------------- | :---------------------- | | zookeeper | 2181 | | zkCli.sh -server zookeeper1:2181 | 客户端接入 | | 2888,3888 | | N/A | 集群内部通讯 | | | HDFS Namenode | 9000 | HDFS | hdfs dfs -ls hdfs://namenode1:9000/ | 客户端接入 | | 50070 | HTTP | http://namenode1:50070/ | 集群监控 | | | HDFS SecondaryNamenode | 50090 | HTTP | http://namenode1:50090/ | secondary监控 | | HDFS Datanode | 50010 | | N/A | 客户端接入/其他节点接入 | | 50020 | | N/A | | | | 50075 | HTTP | http://datanode1:50075/ | 节点监控 | | | HBase Master | 16000 | | hbase-client-1.x.x.jar | RegionServer接入 | | 16010 | HTTP | http://namenode1:16010/ | 集群监控 | | | HBase RegionServer | 16020 | | N/A | 客户端接入 | | 16030 | HTTP | http://datanode1:16030/ | 节点监控 | |