配置目标
在一個虛拟主機中(例如,heron06)中配置完成叢集中slave的前提下,可以快速的複制slave節點,完成Heron叢集的多節點部署。這裡通過對heron06主機的虛拟機檔案進行複制,建立新的slave節點加入到已有的叢集環境中,使之可以正常使用。本文章與之間的一篇文章:Heron叢集從零加入新節點(Slave)操作的差別在于,之前的文章為從零開始配置slave節點,也就是從建立新的虛拟機然後完成一系列的slave中元件的按照和配置工作。而這篇文章,通過對已經配置完成并可以正常使用的節點主機的虛拟機檔案進行複制,之後隻需要簡單配置一些slave檔案,新節點即可加入叢集工作,不需要進行叢集中元件的複雜按照。這種方式更加快捷友善,而且可以減少錯誤的重複出現。
新節點加入過程
如下為複制虛拟機檔案并配置新節點加入的過程。
1. 複制虛拟機檔案
将叢集中已經配置完成的slave節點的虛拟機檔案複制(這裡可能需要使用到移動硬碟,U盤的存儲格式不支援大檔案的複制)到新的計算機中,然後使用VMware Workstation 12/14打開虛拟機,開啟該虛拟機。有些的額外的工作,例如,修改虛拟機檔案路徑的的名稱等,可做可不做,對叢集的配置不影響。
2. 配置新節點主機名
修改/etc/hostname檔案,設定新加入節點的主機名(這裡為heron07):
[email protected]:~$ cat /etc/hostname
heron07
修改/etc/hosts檔案,将叢集中所有的slave節點ip和主機名加入:
[email protected]:~$ 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配置檔案,将新節點的主機名加入該檔案:
[email protected]:~$ cat ./hadoop/hadoop-2.7.4/etc/hadoop/slaves
heron05
heron06
heron07 # 新加入的節點
同樣,需要修改叢集中原有所有主機的該檔案,進行添加。
5. 加入Mesos叢集
類似與hadoop叢集的配置。這裡進入mesos編譯安裝的檔案目錄(/home/yitian/mesosinstall/etc/mesos),修改slaves配置檔案,将新節點的主機名加入該檔案:
[email protected]:~$ cat ./mesosinstall/etc/mesos/slaves
heron05
heron06
heron07 # 新加入的節點
同樣,需要修改叢集中原有所有主機的該檔案,進行添加。
6. 啟動thermos-observer服務
在完成上述的配置後,修改和配置新節點加入叢集以及完成。下面可以先在新節點中啟動thermos-observer服務,這樣,在後面啟動mesos,aurora時,可以對該新加入的節點進行驗證,啟動指令如下:
[email protected]:~$ 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:
[email protected]:~$ ./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:
[email protected]:/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!
[email protected]:/home/yitian#
在浏覽其中檢視:
點選heron07節點的連接配接,可以檢視heron07中任務配置設定的情況。(這裡就是需要上面在slave節點中正确啟動thermos-observer服務)。這裡配置的過程和遇到的問題見:Aurora thermos_observer的配置與啟動
新節點加入成功!!!