自制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调用,达到每次启动自动修改的目的
参考资料
- Docker的基本操作https://blog.csdn.net/m0_37714245/article/details/81713477
- zenghui同学的讲解
(如果对制作过程感兴趣,欢迎查看《自制Hadoop+HBase的Docker镜像 之 制作篇》https://hxhen.com/make-a-hadoop-hbase-docker-image)