配置目标
在一个虚拟主机中(例如,heron06)中配置完成集群中slave的前提下,可以快速的复制slave节点,完成Heron集群的多节点部署。这里通过对heron06主机的虚拟机文件进行复制,创建新的slave节点加入到已有的集群环境中,使之可以正常使用。本文章与之间的一篇文章:Heron集群从零加入新节点(Slave)操作的区别在于,之前的文章为从零开始配置slave节点,也就是从创建新的虚拟机然后完成一系列的slave中组件的按照和配置工作。而这篇文章,通过对已经配置完成并可以正常使用的节点主机的虚拟机文件进行复制,之后只需要简单配置一些slave文件,新节点即可加入集群工作,不需要进行集群中组件的复杂按照。这种方式更加快捷方便,而且可以减少错误的重复出现。
新节点加入过程
如下为复制虚拟机文件并配置新节点加入的过程。
1. 复制虚拟机文件
将集群中已经配置完成的slave节点的虚拟机文件复制(这里可能需要使用到移动硬盘,U盘的存储格式不支持大文件的复制)到新的计算机中,然后使用VMware Workstation 12/14打开虚拟机,开启该虚拟机。有些的额外的工作,例如,修改虚拟机文件路径的的名称等,可做可不做,对集群的配置不影响。
2. 配置新节点主机名
修改/etc/hostname文件,设置新加入节点的主机名(这里为heron07):
yitian@heron07:~$ cat /etc/hostname
heron07
修改/etc/hosts文件,将集群中所有的slave节点ip和主机名加入:
yitian@heron07:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu
218.195.228.52 heron04
218.195.228.31 heron05
218.195.228.12 heron06
218.195.228.43 heron07
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
注:在完成/etc/hostname配置文件的修改之后,需要对虚拟机进行重启成效。
3. 配置SSH免登陆(集群间相互)
在完成上一步主机名并重启主机后,下面进行该新加入的主机对集群中其他主机设置SSH免密码的操作。同时也需要对集群中其他主机对该新加入节点进行同样的免密SSH登录操作。
设置SSH免密登录,详细的操作见:Ubuntu16.04 配置集群SSH无密码登录
注:因为这里使用的主机为之前已经配置过SSH免密登录的主机,因此,这里的配置会相对简单。只需要先“ssh 其他集群”主机试一下,有问题,根据情况解决问题,没有问题就无需重复进行ssh-keygen和ssh-copyid等操作。
4. 加入Hadoop集群
完成上述操作后,即可进行新节点加入hadoop集群中的配置操作。
进入hadoop的配置文件目录/home/yitian/hadoop/hadoop-2.7.4/etc/hadoop,修改slaves配置文件,将新节点的主机名加入该文件:
yitian@heron07:~$ cat ./hadoop/hadoop-2.7.4/etc/hadoop/slaves
heron05
heron06
heron07 # 新加入的节点
同样,需要修改集群中原有所有主机的该文件,进行添加。
5. 加入Mesos集群
类似与hadoop集群的配置。这里进入mesos编译安装的文件目录(/home/yitian/mesosinstall/etc/mesos),修改slaves配置文件,将新节点的主机名加入该文件:
yitian@heron07:~$ cat ./mesosinstall/etc/mesos/slaves
heron05
heron06
heron07 # 新加入的节点
同样,需要修改集群中原有所有主机的该文件,进行添加。
6. 启动thermos-observer服务
在完成上述的配置后,修改和配置新节点加入集群以及完成。下面可以先在新节点中启动thermos-observer服务,这样,在后面启动mesos,aurora时,可以对该新加入的节点进行验证,启动命令如下:
yitian@heron07:~$ thermos_observer --ip=218.195.228.43 --mesos-root=/home/yitian/mesosdata/run
Writing log files to disk in /var/tmp
I0319 04:49:31.606410 3664 static_assets.py:34] detecting assets...
I0319 04:49:31.610750 3664 static_assets.py:38] detected asset: observer.js
I0319 04:49:31.611129 3664 static_assets.py:38] detected asset: bootstrap.css
I0319 04:49:31.612560 3664 static_assets.py:38] detected asset: jquery.pailer.js
I0319 04:49:31.613013 3664 static_assets.py:38] detected asset: jquery.js
I0319 04:49:31.616117 3664 static_assets.py:38] detected asset: favicon.ico
Bottle v0.11.6 server starting up (using CherryPyServer())...
Listening on http://218.195.228.43:1338/
Hit Ctrl-C to quit.
注:命令中的两个参数为必须设置的。
7. 查看节点加入情况
在集群主节点中启动hadoop,aurora,mesos,其中,aurora-scheduler会自动启动。如下:
启动hadoop:
yitian@heron04:~$ ./hadoop/hadoop-2.7.4/sbin/start-dfs.sh
Starting namenodes on [heron04]
heron04: starting namenode, logging to /home/yitian/hadoop/hadoop-2.7.4/logs/hadoop-yitian-namenode-heron04.out
heron06: starting datanode, logging to /home/yitian/hadoop/hadoop-2.7.4/logs/hadoop-yitian-datanode-heron06.out
heron05: starting datanode, logging to /home/yitian/hadoop/hadoop-2.7.4/logs/hadoop-yitian-datanode-heron05.out
heron07: starting datanode, logging to /home/yitian/hadoop/hadoop-2.7.4/logs/hadoop-yitian-datanode-heron07.out
Starting secondary namenodes [heron04]
heron04: starting secondarynamenode, logging to /home/yitian/hadoop/hadoop-2.7.4/logs/hadoop-yitian-secondarynamenode-heron04.out
启动mesos:
root@heron04:/home/yitian# ./mesosinstall/sbin/mesos-start-cluster.sh
Starting mesos-master on heron04
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 heron04 /home/yitian/mesosinstall/sbin/mesos-daemon.sh mesos-master </dev/null >/dev/null
Starting mesos-agent on heron06
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 heron06 /home/yitian/mesosinstall/sbin/mesos-daemon.sh mesos-agent </dev/null >/dev/null
Starting mesos-agent on heron05
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 heron05 /home/yitian/mesosinstall/sbin/mesos-daemon.sh mesos-agent </dev/null >/dev/null
Starting mesos-agent on heron07
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=2 heron07 /home/yitian/mesosinstall/sbin/mesos-daemon.sh mesos-agent </dev/null >/dev/null
ssh: connect to host heron05 port 22: No route to host
Everything's started!
root@heron04:/home/yitian#
在浏览其中查看:
点击heron07节点的连接,可以查看heron07中任务分配的情况。(这里就是需要上面在slave节点中正确启动thermos-observer服务)。这里配置的过程和遇到的问题见:Aurora thermos_observer的配置与启动
新节点加入成功!!!