目錄
- 概要說明
- 安裝vbox
- 安裝虛拟機
-
- 安裝Ubuntu
- 設定共享目錄
-
- 設定共享目錄
- 安裝增強功能
- 挂載目錄
- 設定靜态ip
- 安裝JDK
- clone多個虛拟機
-
- 設定虛拟機的主機名和靜态ip
- 配置ssh免密登入
- 總結
- 參考資料
概要說明
先看下效果
mac上用vbox 6.0搭建基于Ubuntu 18.04的3台虛拟機,并在虛拟機上安裝jdk,設定靜态ip,各個虛拟機之間配置ssh免密登入等,windows大同小異。
安裝vbox
網上下載下傳,一步一步安裝就行,很簡單,不多說
安裝虛拟機
安裝Ubuntu
下載下傳最新的Ubuntu Server長期支援鏡像ubuntu-18.04.3-live-server-amd64.iso。
建立虛拟機,選擇鏡像,一步一步預設就行了,我輸入的虛拟機名為Ubuntu0,使用者名為hadoop,虛拟機的服務名為hadoop0,大家可以任意,隻要符合命名規則就好,設定網絡方式為橋接方式,虛拟機通過主控端器上網,主控端器也能在網絡中識别虛拟機:
啟動用hadoop使用者進入系統。
設定共享目錄
可以直接在虛拟機裡面下載下傳,但是網速慢,我在外面通過迅雷等工具下載下傳好,然後共享到虛拟機來安裝。
設定共享目錄
在本地建立一個目錄vmshare,在vbox裡面映射到虛拟機。點選設定–>共享檔案夾,點選最右邊的加号圖示,路徑為剛建立的目錄vmshare,如下:
不要自動挂載,我們手動挂載。
安裝增強功能
配置好了共享目錄,還需要安裝增強功能才能實作共享,啟動虛拟機,點選如下菜單安裝:
如果沒有任何報錯,那就成功安裝了,我出現了如下報錯:
Could not mount the media/drive ‘/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso’ (VERR_PDM_MEDIA_LOCKED)
解決方案:進入虛拟機,執行以下指令:
sudo apt-get install virtualbox-guest-utils
一樣的效果。
挂載目錄
進入虛拟機,建立一個映射目錄:/media/cdrom,我們将共享目錄映射到這個目錄:
sudo mount -t vboxsf vmshare /media/cdrom
我們在共享目錄裡面放的東西,就可以在看到了:
我在共享目錄放了一個jdk8,在虛拟機可以看到了,後面我們直接把該jdk給安裝。
設定靜态ip
我們安裝叢集,ip老變不行,我們給虛拟機設定靜态ip,執行下面的指令:
sudo vim /etc/netplan/50-cloud-init.yaml
修改成如下:
network:
ethernets:
enp0s3:
dhcp4: false
addresses: [192.168.1.102/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
version: 2
啟用配置檔案:
sudo netplan apply
或是是重新啟動,我們ping一下,應該可以了。
安裝JDK
這個很簡單,做過java開發的,應該都配置過
-
解壓
把共享目錄的jdk,解壓到/usr/local/java
sudo tar xvf ~/Downloads/jdk-8u221-linux-x64.tar.gz -C /usr/local/java
- 配置環境變量
sudo vim ~/.bashrc
在末尾添加:
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
重新登入下,或者新開一個視窗,用java -version看下效果。
clone多個虛拟機
配置好了一個,沒必要每個都這樣配置,我們可以使用vbox的clone或者複制功能,需要先關閉虛拟機,右擊複制,輸入名字,mac位址設定:為所有網卡重新生成MAC位址,其他根據需要選擇,使用預設也可以。
設定虛拟機的主機名和靜态ip
這樣clone的主機名都一樣,我們修改下:
sudo vim /etc/hostname
分别為:hadoop1,hadoop2
設定靜态ip,隻需要将上面第一台機器的ip最後一位修改為103,104即可。
設定主機名跟ip的映射:
sudo vim /etc/hosts
添加:
192.168.1.104 hadoop2
192.168.1.103 hadoop1
192.168.1.102 hadoop0
127.0.0.1也改成相應的服務名,另外一台機器執行同樣的操作。切記,隻保留這幾個,其他不相關的删掉,不然後面會有問題。
配置ssh免密登入
進入使用者目錄/home/hadoop/.ssh,執行
ssh-keygen -t rsa
一路回車下去,直至完成。
每台機器都執行相同的操作,下面把這三台虛拟機互相交換互相交換。
現在我們讓hadoop0上的密鑰複制到其他兩台機器上去:
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa.pub.UB01
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa.pub.UB01
另外兩台機器執行類似的操作,注意後面的檔案名:
hadoop01
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa.pub.UB02
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa.pub.UB02
hadoop01
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa.pub.UB03
scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/.ssh/id_rsa.pub.UB03
把自己的密鑰連同别人的兩個密鑰加到授權密鑰中:
cat id_rsa.pub >> authorized_keys;
cat id_rsa.pub.UB01 >> authorized_keys;
cat id_rsa.pub.UB02 >> authorized_keys;
另外兩台機器執行類似的操作,注意後面的檔案名。
這樣三台機器互相就配好了,通過ssh hadoop1可以連過去。
總結
僞分布式叢集已經建好,相關的基礎軟體也裝好,還是有很多點要注意,像共享目錄和靜态ip的配置,都找了不少資料,花了不少時間,下一步,安裝hadoop叢集。
參考資料
- https://www.cnblogs.com/zl0372/articles/hadoop_10.html
- https://my.oschina.net/u/697744/blog/518903
- https://askubuntu.com/questions/573596/unable-to-install-guest-additions-cd-image-on-virtual-box
- https://www.jianshu.com/p/4a1f79f200b6
- https://blog.csdn.net/senver_wen/article/details/84678528
歡迎關注我的微信公衆号