通过puppet来部署bigtop的大数据组件是可行的,我就一步步地教大家如何生产部署前开发测试,测试无误后,如何生产部署。本文是开发测试篇。主要用docker来模拟集群环境,测试无误后,才能上正式的机器。生产部署将用rundeck来操作管理。

开发bigtop的部署主要是写yaml配置文件,必要时候需要一点点puppet代码。通过docker模拟节点,并且部署集群。

首先我们需要一个模板代码,

GitHub - vivostar/queen: production deploy bigtop components

模板项目通过分支来部署其相对应的功能。各个分支的功能介绍主要如下所示,master分支部署azkaban集群以及一个节点的hadoop集群;zk分支部署zookeeper集群,这个集群为hbase分支以及hbase-phoenix分支所依赖;ha-zk分支也是部署zookeeper集群,这个集群是ha-auto分支所依赖的。

大概了解之后,就可以“开发测试”了。

首先我们需要一个阿里云的服务器,最好是选择首尔或是美国的,这样我们可以下载一些依赖比较快速一些。

然后我们需要安装docker,ruby, jdk,我的开发测试机为centos7,下面的代码是可以运行的

yum install -y git yum-utils ruby java-1.8.0-openjdk-devel
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
systemctl start docker

然后clone模板代码到服务器上

git clone https://github.com/vivostar/queen.git

然后我们可以小试一试牛刀,部署一下一个azkaban的docker集群

cd queen
git branch #确保在master分支上
./test_all.sh

docker desktop 如何设置 daemon docker daemon bip_docker

 等待几分钟,若无异常日志输出,则表示azkaban已经部署好了,我们在阿里云开通8081端口的端口访问权限,然后可以访问试试看。

docker desktop 如何设置 daemon docker daemon bip_docker_02

 登录默认的用户名azkaban,密码azkaban

docker desktop 如何设置 daemon docker daemon bip_docker_03

 you get it! 顺利完成了!

现在在服务器上观察: 

docker desktop 如何设置 daemon docker daemon bip_容器_04

 可见四台容器在运行,模拟了生产环境的的部署方式

这只是小试牛刀,接下来我带各位运行一个hadoop ha的模拟部署

关闭azkaban的集群,切换到ha-zk分支,然后运行,这个分支用来部署ha-auto用到的zookeeper的docker集群

./clear-docker.sh 
git checkout ha-zk
./test_all.sh

docker desktop 如何设置 daemon docker daemon bip_运维_05

 这个部署可能比较长,我们等待几分钟,等运行结束之之后,我们切换到ha-auto分支上,命令如下:

git checkout ha-auto
./start-docker.sh

这一过程时间也比较长,主要原因是需要在线下载hadoop的安装包,若是在生产环境部署的时候,我们完全可以使用本地repo。

终于运行完了, 我们检测以下运行效果

docker desktop 如何设置 daemon docker daemon bip_运维_06

 这时候我们已经可以看到hdfs开启了ha。下一篇文章,我会告诉大家这一切究竟是怎么发生的,并且带领大家开发一个bigtop组件部署方案来。