您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)怎么在VirtualBox中模擬一個(gè)Linux集群,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
1. 在主機(jī)Macbook上設(shè)置HOST
首先在Mac下修改hosts文件,這樣在ssh時(shí)就不用輸入ip地址了。
sudo vim /etc/hosts 或者 sudo vim /private/etc/hosts 這兩個(gè)文件其實(shí)是一個(gè),是通過(guò)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
然后我們說(shuō)一下 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/
看完上述內(nèi)容,你們對(duì)怎么在VirtualBox中模擬一個(gè)Linux集群有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。