docker安装hbase

火山方舟算法混合云

安装docker

yum install docker

查找hbase

docker search hbase


      1. `Cannot
  connect to the 
 Docker
  daemon at unix
 :
 ///var/run/docker.sock. Is the docker daemon running?`


    

解决办法:sudo systemctl start docker

再运行docker search hbase


      1. `INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED`
2. `docker.io docker.io/harisekhon/hbase Apache HBase, opens shell - pseudo-distrib... 86 [OK]`
3. `docker.io docker.io/dajobe/hbase HBase 2.1.2 in Docker 25`
4. `docker.io docker.io/nerdammer/hbase HBase pseudo-distributed (configured for l... 25 [OK]`
5. `docker.io docker.io/banno/hbase-standalone HBase master running in standalone mode on... 17 [OK]`
6. `docker.io docker.io/boostport/hbase-phoenix-all-in-one HBase with phoenix and the phoenix query s... 9 [OK]`
7. `docker.io docker.io/zenoss/hbase HBase image for Zenoss 5.0 9`
8. `docker.io docker.io/harisekhon/hbase-dev Apache HBase + dev tools, github repos, ps... 7 [OK]`
9. `docker.io docker.io/bde2020/hbase-standalone Standalone Apache HBase docker image. Suit... 5 [OK]`
10. `docker.io docker.io/bde2020/hbase-regionserver Regionserver Docker image for Apache HBase. 4 [OK]`
11. `docker.io docker.io/gradiant/hbase-base Hbase small footprint Image (Alpine based) 3 [OK]`
12. `docker.io docker.io/smizy/hbase Apache HBase docker image based on alpine 3 [OK]`
13. `docker.io docker.io/aaionap/hbase AAI Hbase 2`
14. `docker.io docker.io/bde2020/hbase-master Master docker image for Apache HBase. 2 [OK]`
15. `docker.io docker.io/f21global/hbase-phoenix-server HBase phoenix query server 1 [OK]`
16. `docker.io docker.io/imagenarium/hbase 1`
17. `docker.io docker.io/imagenarium/hbase-master 1`
18. `docker.io docker.io/imagenarium/hbase-regionserver 1`
19. `docker.io docker.io/newnius/hbase Setup a HBase cluster in a totally distrib... 1 [OK]`
20. `docker.io docker.io/pilchard/hbase Hbase 1.2.0 (CDH 5.11) with openjdk-1.8 1 [OK]`
21. `docker.io docker.io/cellos/hbase HBase on top of Alpine Linux 0`
22. `docker.io docker.io/iwan0/hbase-thrift-standalone hbase-thrift-standalone 0 [OK]`
23. `docker.io docker.io/pierrezemb/hbase-docker hbase in docker 0 [OK]`
24. `docker.io docker.io/pierrezemb/hbase-standalone Docker images to experiment with HBase 1.... 0 [OK]`
25. `docker.io docker.io/stellargraph/hbase-hadoop 0`
26. `docker.io docker.io/stellargraph/hbase-master`


    

docker images


      1. `REPOSITORY TAG IMAGE ID CREATED SIZE`
2. `docker.io/dajobe/hbase latest cfd7eefee902 15 months ago 492 MB`


    

配置主机名与端口映射等


      1. `docker run -d -h myhbase -p 2181:2181 -p 8080:8080 -p 8085:8085 -p 9090:9090 -p 9095:9095`
2. `-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 :主机随机分配端口与宿主机上的端口进行映射
执行:

      1. `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`
2. `obe/hbase`


    

结果:


      1. `cdfb7e24c051bc69083d715be42ea32efe7d8584b4609e475707ac43e0b40206`


    

docker ps -a


      1. `CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES`
2. `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

效果:

picture.image

进入docker容器

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


      1. `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查看:


      1. `docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500`
2. `inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0`
3. `ether 02:42:88:1e:cd:ff txqueuelen 0 (Ethernet)`
4. `RX packets 549 bytes 1092247 (1.0 MiB)`
5. `RX errors 0 dropped 0 overruns 0 frame 0`
6. `TX packets 465 bytes 43279 (42.2 KiB)`
7. `TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0`
8. 
9. `eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500`
10. `inet 172.16.1.230 netmask 255.255.255.0 broadcast 172.16.1.255`
11. `ether 00:16:3e:16:6a:ac txqueuelen 1000 (Ethernet)`
12. `RX packets 3900038 bytes 2205407507 (2.0 GiB)`
13. `RX errors 0 dropped 0 overruns 0 frame 0`
14. `TX packets 2437734 bytes 1234635259 (1.1 GiB)`
15. `TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0`
16. 
17. `lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536`
18. `inet 127.0.0.1 netmask 255.0.0.0`
19. `loop txqueuelen 1000 (Local Loopback)`
20. `RX packets 254754 bytes 147500058 (140.6 MiB)`
21. `RX errors 0 dropped 0 overruns 0 frame 0`
22. `TX packets 254754 bytes 147500058 (140.6 MiB)`
23. `TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0`


    

可以看到多出了个docker0网卡

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

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


      1. `yum -y install bridge-utils`
2. 
3. `ifconfig docker0 down`
4. 
5. `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查看:


      1. `docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500`
2. `inet 192.17.0.1 0`
3. 
4. `eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500`
5. `0`
6. 
7. `lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536`
8. `0`


    

可以看到多出了个docker0网卡

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

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


      1. `yum -y install bridge-utils`
2. 
3. `ifconfig docker0 down`
4. 
5. `brctl delbr docker0`


    

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

问题2

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


      1. `192.17
 .
 0.1
  
 3c38a154df21`


    

问题3

以host网络模式启动命令:


      1. `docker run -d --net=host --name hbase2 docker.io/dajobe/hbase`


    

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

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 GPU Scale-up 互联技术白皮书
近日,字节跳动正式发布基于以太网极致优化的 GPU Scale-up 互联技术白皮书,推出 EthLink 的创新网络方案,旨在为 AI 集群提供低延迟、高带宽的高速互联传输,满足 AI 应用对 GPU 之间高效通信的需求。这一举措标志着字节跳动在 AI 基础设施领域的突破,有望推动通用人工智能(AGI)和大语言模型(LLM)的进一步发展。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论