1. 在主機(jī)Macbook上設(shè)置HOST
前文書已經(jīng)把虛擬機(jī)的靜態(tài)IP地址設(shè)置好,以后可以通過ip地址登錄了。不過為了方便,還是設(shè)置一下,首先在Mac下修改hosts文件,這樣在ssh時(shí)就不用輸入ip地址了。
sudo vim /etc/hosts
或者
sudo vim /private/etc/hosts
這兩個(gè)文件其實(shí)是一個(gè),是通過link做的鏈接。注意要加上sudo, 以管理員運(yùn)行,否則不能存盤。
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
50.116.33.29 sublime.wbond.net
127.0.0.1 windows10.microdone.cn
# Added by Docker Desktop
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
192.168.56.100 hadoop100
192.168.56.101 hadoop101
192.168.56.102 hadoop102
192.168.56.103 hadoop103
192.168.56.104 hadoop104
# End of section
2. 復(fù)制虛擬機(jī)
然后我們需要由上次配好的這一臺(tái)虛擬機(jī),復(fù)制出來(lái)多臺(tái),以便形成一個(gè)集群。首先關(guān)閉虛擬,在上面點(diǎn)右鍵,選復(fù)制,出現(xiàn)如下對(duì)話框,我選擇把所有網(wǎng)卡都重新生成Mac地址,以便模擬完全不同的計(jì)算器環(huán)境。
3. 修改每一臺(tái)的HOST, IP地址
復(fù)制完畢后,記得登錄到虛擬機(jī),按照前面提到的方法修改一下靜態(tài)IP地址,免得IP地址沖突。
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
vi /etc/sysconfig/network-scripts/ifcfg-enp0s8
另外,最好也在每臺(tái)Linux 虛擬機(jī)里也設(shè)置一下HOSTNAME,以便這些虛擬機(jī)之前相互通訊時(shí)也可以使用hostname。需要依次把幾臺(tái)機(jī)器的hostname都設(shè)置好。
[root@hadoop101 ~]# hostnamectl set-hostname hadoop107
[root@hadoop101 ~]# hostname
hadoop107
4. xcall讓服務(wù)器集群同時(shí)運(yùn)行命令
因?yàn)槲覀兺瑫r(shí)有好幾臺(tái)機(jī)器,如果挨個(gè)挨個(gè)的登錄上去操作,難免麻煩,可以寫個(gè)shell腳本,以后從其中一臺(tái)發(fā)起命令,讓所有機(jī)器都執(zhí)行就方便多了。下面是個(gè)例子。 我有hadopp100,hadopp101、hadopp102、hadopp103、hadopp104這個(gè)五臺(tái)虛擬機(jī)。我希望以hadopp100為堡壘,統(tǒng)一控制所有其他的機(jī)器。 在/user/local/bin 下創(chuàng)建一個(gè)xcall的文件,內(nèi)容如下:
touch /user/local/bin/xcall
chmod +x /user/local/bin/xcall
vi/user/local/bin/xcall
#!/bin/bash
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi
echo ---------running at localhost--------
$@
for((host=101;host<=104;host++));do
echo ---------running at hadoop$host-------
ssh hadoop$host $@
done
~
比如我用這個(gè)xcall腳本在所有機(jī)器上調(diào)用pwd名稱,查看當(dāng)前目錄,會(huì)依次提示輸入密碼后執(zhí)行。
[root@hadoop100 ~]# xcall pwd
---------running at localhost--------
/root
---------running at hadoop101-------
root@hadoop101's password:
/root
---------running at hadoop102-------
root@hadoop102's password:
/root
---------running at hadoop103-------
root@hadoop103's password:
/root
---------running at hadoop104-------
root@hadoop104's password:
/root
[root@hadoop100 ~]#
5. scp與rsync
然后我們說一下 scp這個(gè)工具。 scp可以在linux間遠(yuǎn)程拷貝數(shù)據(jù)。如果要拷貝整個(gè)目錄,加 -r 就可以了。
[root@hadoop100 ~]# ls
anaconda-ks.cfg
[root@hadoop100 ~]# scp anaconda-ks.cfg hadoop104:/root/
root@hadoop104's password:
anaconda-ks.cfg 100% 1233 61.1KB/s 00:00
[root@hadoop100 ~]#
另外還可以用rsync, scp是不管目標(biāo)機(jī)上情況如何,都要拷貝以便。 rsync是先對(duì)比一下,有變化的再拷貝。如果要遠(yuǎn)程拷貝的東西比較大,用rsync更快一些。 不如rsync在centOS上沒有默認(rèn)安裝,需要首先安裝一下。在之前的文章中,我們的虛擬機(jī)已經(jīng)可以聯(lián)網(wǎng)了,所以在線安裝就可以了。
[root@hadoop100 ~]# xcall sudo yum install -y rsync
比如,把hadoop100機(jī)器上的java sdk同步到102上去:
[root@hadoop100 /]# rsync -r /opt/modules/jdk1.8.0_121/ hadoop102:/opt/modules/jdk1.8.0_121/
好了,到現(xiàn)在基本的工具和集群環(huán)境搭建起來(lái)了,后面就可以開始hadoop的學(xué)習(xí)了。
總結(jié)
以上所述是小編給大家介紹的使用VirtualBox模擬Linux集群的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!