docker环境下安装Hbase+Phoenix

首先需要保证docker环境是正常的。

1.搜索镜像

docker search hbase

得到如下结果
docker环境下安装Hbase+Phoenix_第1张图片

2.拉取镜像

这里指定版本为1.3

docker pull harisekhon/hbase:1.3

镜像拉取后如下图
docker环境下安装Hbase+Phoenix_第2张图片

3.创建容器

注:容器名称可自定义

方式1

docker run -d --name 容器名称 -P harisekhon/hbase:1.3
例:
docker run -d --name hbase001 -P harisekhon/hbase:1.3

方式2

docker run -d --name 容器名称 -p 16010:16010 harisekhon/hbase:1.3
例:
docker run -d --name hbase001 -p 16010:16010 harisekhon/hbase:1.3

方式3

docker run -d -h myhbase \
-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 \
--name 容器名称 harisekhon/hbase:1.3

例:
docker run -d -h myhbase \
-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 \
--name hbase1.3 harisekhon/hbase:1.3

这里我采用的是方式3
docker环境下安装Hbase+Phoenix_第3张图片

4.修改hosts文件

sudo vim /etc/hosts

在文件中加入虚拟机ip地址和hbase指定主机名称的映射,在当前示例中,主机映射的名称为上述方式3 -h 指定的名称,也就是myhbase,然后我的虚拟机ip为192.168.73.66,如下图
docker环境下安装Hbase+Phoenix_第4张图片
docker环境下安装Hbase+Phoenix_第5张图片

5.启动容器

docker start 容器id

在这里插入图片描述

6.浏览器访问

http://docker IP:宿主机上(容器)的开放端口 16010对应的指定主机的端口/master-status

例:
http://192.168.73.66:16010/master-status

访问后出现如下界面说明启动hbase成功
docker环境下安装Hbase+Phoenix_第6张图片

7.进入容器内部测试

docker exec -it 容器名称 bash
例:
docker exec -it hbase1.3 bash

进入容器内部后执行

hbase shell

结果如下图
docker环境下安装Hbase+Phoenix_第7张图片
输入命令list测试
docker环境下安装Hbase+Phoenix_第8张图片

8.安装Phoenix

先在外部下载好对应的安装包,然后将安装包拷贝进容器内部,因为直接在容器内部使用wget下载速度太慢了。

Phoenix下载地址

下载后将对应的tar.gz先拷贝到虚拟机,再从虚拟机拷贝到容器。
从宿主机拷贝文件到容器里面:

docker cp 宿主机文件路径 容器名:要拷贝到容器里面对应的路径

9.在容器内安装

当把Phoenix拷贝到容器内部之后,我们进入容器内部
docker环境下安装Hbase+Phoenix_第9张图片
按顺序执行指令

# Phoenix依赖python环境,需要安装python
apk add --no-cache python
tar -xzvf apache-phoenix-4.13.1-HBase-1.3-bin.tar.gz
cp apache-phoenix-4.13.1-HBase-1.3-bin/phoenix-4.13.1-HBase-1.3-server.jar hbase-1.3.2/lib/

./hbase/bin/stop-hbase.sh
./hbase/bin/start-hbase.sh

10.Phoenix试用

cd apache-phoenix-4.13.1-HBase-1.3-bin/bin/
./sqlline.py

docker环境下安装Hbase+Phoenix_第10张图片

11.使用Phoenix进行crud

create table t_user(name varchar, age integer not null primary key);

upsert into t_user(name, age) values('Jack', 1);

select * from t_user;

delete from t_user where age = 1;

alter table t_user add version varchar;
alter table t_user drop column version;

上述代码运行结果
docker环境下安装Hbase+Phoenix_第11张图片
docker环境下安装Hbase+Phoenix_第12张图片

注意:
(1)插入值如果是字符串要用单引号引起来,切记不能用双引号!!!
(2)表名如果要体现小写效果,必须要用双引号!!!

# 正确
upsert into "person" values (1, 'test', 100);
# 错误
upsert into "person" values (1, "test", 100);

以上内容仅供学习参考。
参考链接1
参考链接2
参考链接3

你可能感兴趣的:(hbase,docker)