自制Hadoop+HBase的Docker镜像 之 使用篇

自制Hadoop+HBase的Docker镜像 之 使用篇

准备工作

需要安装好Docker,我使用的环境为Ubuntu16.04虚拟机,虚拟机需要分配好内存,如3~4GB大小

拉取docker镜像

1docker pull registry.cn-hangzhou.aliyuncs.com/hxhen/public:v1

创建docker容器
开三个终端,分别执行下面三条命令,创建master、slave01、slave02三个节点

1docker run -it -h master --name master registry.cn-hangzhou.aliyuncs.com/hxhen/public:v1 /bin/bash
2docker run -it -h slave01 --name slave01 registry.cn-hangzhou.aliyuncs.com/hxhen/public:v1 /bin/bash
3docker run -it -h slave02 --name slave02 registry.cn-hangzhou.aliyuncs.com/hxhen/public:v1 /bin/bash

修改配置

容器创建完成就会立即进入容器,在容器内进行下面所有操作
修改hosts文件
分别在三个终端执行下面这条命令

1vim /etc/hosts

可以看到每个文件内容都形如:

1127.0.0.1       localhost
2::1     localhost ip6-localhost ip6-loopback
3fe00::0 ip6-localnet
4ff00::0 ip6-mcastprefix
5ff02::1 ip6-allnodes
6ff02::2 ip6-allrouters
7172.17.0.2      master

其中最后一行就是当前节点的主机名和对应的ip。
现在把三个节点里这个文件的内容都修改为三个节点的ip和主机名,形如:

1172.17.0.2      master
2172.17.0.3      slave01
3172.17.0.4      slave02

修改myid文件
分别在三个终端执行下面这条命令,第一行命令在master节点执行,第二行命令在slave01节点执行,第三行命令在slave02节点执行

1echo "0" > /usr/local/zookeeper/data/myid
2echo "1" > /usr/local/zookeeper/data/myid
3echo "2" > /usr/local/zookeeper/data/myid

启动集群

启动顺序为 hadoop -> zookeeper -> hbase
关闭顺序为 hbase -> zookeeper -> hadoop

初始化namenode
在master节点执行

1hadoop namenode -format

启动hadoop
在master节点执行

1start-all.sh

启动zookeeper
分别在三个终端执行

1zkServer.sh start

启动hbase
在master节点执行

1start-hbase.sh

查看集群情况

分别在三个终端执行 jps 命令可以查看当前节点的进行情况
形如:

master节点

12114 Jps
21914 HMaster
3362 SecondaryNameNode
4524 ResourceManager
51741 QuorumPeerMain
6159 NameNode

slave01节点

1961 Jps
265 DataNode
3740 QuorumPeerMain
4836 HRegionServer

slave02节点

1801 HRegionServer
268 DataNode
3711 QuorumPeerMain
41000 Jps

关闭集群

关闭hbase
在master节点执行

1stop-hbase.sh

关闭zookeeper
分别在三个终端执行

1zkServer.sh stop

关闭hadoop
在master节点执行

1stop-all.sh

一点建议

  • 不要随意调换hadoop、zookeeper、hbase的启动顺序,不要忘记在每个节点启动zookeeper
  • 在启动完集群之后,别急着执行正式的操作命令,稍微缓个半分钟……
  • 每次重新启动容器之后都要修改/etc/hosts文件内容,如果懒得改,可以写一个shell脚本在.bashrc调用,达到每次启动自动修改的目的

参考资料

(如果对制作过程感兴趣,欢迎查看《自制Hadoop+HBase的Docker镜像 之 制作篇》https://hxhen.com/make-a-hadoop-hbase-docker-image