通过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
等待几分钟,若无异常日志输出,则表示azkaban已经部署好了,我们在阿里云开通8081端口的端口访问权限,然后可以访问试试看。
登录默认的用户名azkaban,密码azkaban
you get it! 顺利完成了!
现在在服务器上观察:
可见四台容器在运行,模拟了生产环境的的部署方式
这只是小试牛刀,接下来我带各位运行一个hadoop ha的模拟部署
关闭azkaban的集群,切换到ha-zk分支,然后运行,这个分支用来部署ha-auto用到的zookeeper的docker集群
./clear-docker.sh
git checkout ha-zk
./test_all.sh
这个部署可能比较长,我们等待几分钟,等运行结束之之后,我们切换到ha-auto分支上,命令如下:
git checkout ha-auto
./start-docker.sh
这一过程时间也比较长,主要原因是需要在线下载hadoop的安装包,若是在生产环境部署的时候,我们完全可以使用本地repo。
终于运行完了, 我们检测以下运行效果
这时候我们已经可以看到hdfs开启了ha。下一篇文章,我会告诉大家这一切究竟是怎么发生的,并且带领大家开发一个bigtop组件部署方案来。