前面几章节,我们已经熟悉了到docker的基本操作,准备工作已经完成,现在开始构建真正的大数据集群。
硬件准备
- 移动一盘一个
- 电脑两台,一台最为集群的资源机,8g;一台是操作机,通过shell直连集群操作
集群规划
- 规模:5台centos7机器组成集群
- 架构 hdsf+yarn(可选)+zookeeper+hbase+mysql+hive+spark+kafka+其他
集群详细规划
- 集群信息
hadoop1 | 192.168.1.71 |
hadoop2 | 192.168.1.72 |
hadoop3 | 192.168.1.73 |
hadoop4 | 192.168.1.74 |
hadoop5 | 192.168.1.75 |
- 集群服务分布规划
hadoop1 | nameNode,zk,HRegionserver |
hadoop2 | dataNode,zk,Worker |
hadoop3 | dataNode,zk,HRegionserver,Worker |
hadoop4 | dataNode,HMaster,Worker |
hadoop5 | dataNode,Master,HRegionserver |
上表只是列出了hadoop,zk,hbase,spark在各个机器上的服务分布,这几个是整个集群中比较占资源的服务,后续的kafka等服务,就可以根据情况调整。
- 集群各个软件对应版本信息:
jdk | 1.8 |
scala | 2.11.11 |
hadoop | 2.7.4 |
hbase | 1.1.12 |
spark | 2.2.0 |
zookeeper | 3.4.10 |
备注,集群每台机都建立用户hadoop,而且所有的软件环境安装都是基于hadoop用户。
使用dockerfile构建基本镜像
各个软件下载
我这里使用的方法是预先在window机器中下载好全部所需然后传到宿主机上,因为老觉得宿主机外网的速度不够。分别下载为:,,,,
hadoop基础镜像构建
构建centos基础镜像
dockerfile如下:
build centos基础镜像:
需要说明的是,一开始的时候我们的基础centos镜像是7,但是在后续使用的时候会报
然后build:
整个文件目录如下:
buid成功之后,我们大数据集群的最基础的镜像就已经配置完成,击中包括jdk、scala、hadoop、hbase、zookeeper、spark的目录以及环境变量。需要说明的是在最后有将用户切换到root,因为后面的shell脚本中需要启动某些服务,只有root有权限。
docker创建容器
pipwork
脚本准备
创建shells文件夹,用于存放shell脚本,在shells文件夹下创建hadoop_hosts文件,内容如下:
创建shell脚本,vim create_hadoop.sh:
这个脚本中包含创建容器、使用pipework设置静态ip等,启动sshd服务等一系列的操作。脚本运行完成之后先前规划好的大数据集群的基础软件和环境就已经准备完毕,但是现在还只是一个壳,距离真正的大数据集群运行起来还有一段距离,需要对各个组件进行各自需要的一些配置。