docker安装hbase

2020-05-22 16:10:48 浏览数 (1)

安装docker

yum install docker

查找hbase

docker search hbase

代码语言:javascript复制
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

解决办法:sudo systemctl start docker

再运行docker search hbase

代码语言:javascript复制
INDEX       NAME                                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
 
docker.io   docker.io/harisekhon/hbase                     Apache HBase, opens shell - pseudo-distrib... 86 [OK]
 
docker.io   docker.io/dajobe/hbase                         HBase 2.1.2 in Docker 25 
 
docker.io   docker.io/nerdammer/hbase                      HBase pseudo-distributed (configured for l... 25 [OK]
 
docker.io   docker.io/banno/hbase-standalone               HBase master running in standalone mode on... 17 [OK]
 
docker.io   docker.io/boostport/hbase-phoenix-all-in-one   HBase with phoenix and the phoenix query s... 9 [OK]
 
docker.io   docker.io/zenoss/hbase                         HBase image for Zenoss 5.0 9 
 
docker.io   docker.io/harisekhon/hbase-dev                 Apache HBase   dev tools, github repos, ps... 7 [OK]
 
docker.io   docker.io/bde2020/hbase-standalone             Standalone Apache HBase docker image. Suit... 5 [OK]
 
docker.io   docker.io/bde2020/hbase-regionserver           Regionserver Docker image for Apache HBase. 4 [OK]
 
docker.io   docker.io/gradiant/hbase-base Hbase small footprint Image (Alpine based) 3 [OK]
 
docker.io   docker.io/smizy/hbase                          Apache HBase docker image based on alpine       3 [OK]
 
docker.io   docker.io/aaionap/hbase                        AAI Hbase 2 
 
docker.io   docker.io/bde2020/hbase-master                 Master docker image for Apache HBase. 2 [OK]
 
docker.io   docker.io/f21global/hbase-phoenix-server       HBase phoenix query server                      1 [OK]
 
docker.io   docker.io/imagenarium/hbase                                                                    1 
 
docker.io   docker.io/imagenarium/hbase-master                                                             1 
 
docker.io   docker.io/imagenarium/hbase-regionserver                                                       1 
 
docker.io   docker.io/newnius/hbase                        Setup a HBase cluster in a totally distrib... 1 [OK]
 
docker.io   docker.io/pilchard/hbase                       Hbase 1.2.0 (CDH 5.11) with openjdk-1.8 1 [OK]
 
docker.io   docker.io/cellos/hbase                         HBase on top of Alpine Linux 0 
 
docker.io   docker.io/iwan0/hbase-thrift-standalone        hbase-thrift-standalone                         0 [OK]
 
docker.io   docker.io/pierrezemb/hbase-docker              hbase in docker                                 0 [OK]
 
docker.io   docker.io/pierrezemb/hbase-standalone           Docker images to experiment with HBase 1.... 0 [OK]
 
docker.io   docker.io/stellargraph/hbase-hadoop                                                            0 
 
docker.io   docker.io/stellargraph/hbase-master
 
docker images
代码语言:javascript复制
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
 
docker.io/dajobe/hbase   latest              cfd7eefee902        15 months ago       492 MB
 
配置主机名与端口映射等
代码语言:javascript复制
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 hbase2 docker.io/dajobe/hbase
 

简单解释:

  • -h: 指定hostname
  • -d : 后台启动
  • -p: 指定端口映射
  • --name: 指定名称

还可能做一些更多的映射以及docker 数据卷与宿主机的映射关系,此处没有用到,需要的请自行搜索

注意点

docker run -d --name hbase001 -p 16010:16010 docker.io/dajobe/hbase与docker run -d --name hbase001 -P docker.io/dajobe/hbase的区别:

  • -p : 指定主机的端口 16010映射到宿主机上(容器)的开放端口 16010
  • -P :主机随机分配端口与宿主机上的端口进行映射
执行:
代码语言:javascript复制
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 --name hbase2 docker.io/daj
 
obe/hbase
 

结果:

代码语言:javascript复制
cdfb7e24c051bc69083d715be42ea32efe7d8584b4609e475707ac43e0b40206
docker ps -a
代码语言:javascript复制
CONTAINER ID        IMAGE                    COMMAND               CREATED             STATUS              PORTS                                                                                                                                                                                                                            NAMES
 
cdfb7e24c051        docker.io/dajobe/hbase   "/opt/hbase-server" 6 seconds ago       Up 5 seconds        0.0.0.0:2181->2181/tcp, 0.0.0.0:8080->8080/tcp, 0.0.0.0:8085->8085/tcp, 0.0.0.0:9090->9090/tcp, 0.0.0.0:9095->9095/tcp, 0.0.0.0:16000->16000/tcp, 0.0.0.0:16010->16010/tcp, 0.0.0.0:16201->16201/tcp, 0.0.0.0:16301->16301/tcp   hbase2
 
访问web界面

http://ip:16010/master-status

效果:

进入docker容器

有两种方式,attach和exec,我们选择exec:

代码语言:javascript复制
docker exec -it hbase2  bash

ps -aux|grep hbase即可查到端口、pid和目录信息:

  • hbase目录在:/opt/hbase
  • bin目录为:/opt/hbase/bin
主要命令
  • docker images: 查看docker镜像
  • docker ps -a:查看当前运行的docker镜像
  • docker exec -it hbase2 bash: 进入hbase容器
  • hbase当前目录:/opt/hbase
问题

ifconfig查看:

代码语言:javascript复制
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
 
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 0.0.0.0
 
        ether 02:42:88:1e:cd:ff  txqueuelen 0 (Ethernet)
 
        RX packets 549  bytes 1092247 (1.0 MiB)
 
        RX errors 0  dropped 0  overruns 0  frame 0
 
        TX packets 465  bytes 43279 (42.2 KiB)
 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 


 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 
        inet 172.16.1.230  netmask 255.255.255.0  broadcast 172.16.1.255
 
        ether 00:16:3e:16:6a:ac  txqueuelen 1000 (Ethernet)
 
        RX packets 3900038  bytes 2205407507 (2.0 GiB)
 
        RX errors 0  dropped 0  overruns 0  frame 0
 
        TX packets 2437734  bytes 1234635259 (1.1 GiB)
 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 


 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
 
        inet 127.0.0.1  netmask 255.0.0.0
 
        loop  txqueuelen 1000 (Local Loopback)
 
        RX packets 254754  bytes 147500058 (140.6 MiB)
 
        RX errors 0  dropped 0  overruns 0  frame 0
 
        TX packets 254754  bytes 147500058 (140.6 MiB)
 
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 

可以看到多出了个docker0网卡

然后systemctl restart network重启了下网卡,发现ip:16010访问不了了。。。。

猜想是docker0网卡的原因,于是删掉它:

代码语言:javascript复制
yum -y install bridge-utils
 


 
ifconfig docker0 down
 


 
 brctl delbr docker0
 

然后再重启网卡,问题解决。

主要命令
  • docker images: 查看docker镜像
  • docker ps -a: 查看当前运行的docker镜像
  • docker exec -it hbase2 bash: 进入hbase容器
  • hbase当前目录:/opt/hbase
  • docker stop hbase2: 关闭容器
  • docker rm hbase2:删除容器
  • 容器内部安装vim:先apt-get update ,然后apt-get install vim
  • docker logs hbase2:查看日志

问题1

ifconfig查看:

代码语言:javascript复制
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
 
        inet 192.17.0.1 0
 


 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
 
 0
 


 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
 
 0
 

可以看到多出了个docker0网卡

然后systemctl restart network重启了下网卡,发现ip:16010访问不了了。。。。

猜想是docker0网卡的原因,于是删掉它:

代码语言:javascript复制
1.yum -y install bridge-utils
2.
3.ifconfig docker0 down
4.
5.brctl delbr docker0

然后再重启网卡,问题解决。

问题2

默认使用的网络模式是桥接模式,宿主机与容器的网络通过docker0网卡来通信,在这种模式下默认用容器id作为hostname的,需要在宿主机中配置容器ip与id的映射关系:

代码语言:javascript复制
192.17.0.1 3c38a154df21
问题3

以host网络模式启动命令:

代码语言:javascript复制
 docker run -d --net=host --name hbase2 docker.io/dajobe/hbase 

这种模式的特点是容器和宿主机共享网络,达不到网络隔离的效果。

0 人点赞