登錄服務器并創建自己的虛擬機
學校服務器地址為:10.13.0.21~10.13.0.29,每一個IP對應著是不同配置的主機,在新建自己虛擬機之前應該先估算自己所需要多少資源,確定在哪個IP上注冊自己的虛擬機,所有IP的登錄名:root,密碼:xxx,下面展示的是22節點上登錄界面:

成功登錄以后會顯示出服務器上面的虛擬主機,如下圖所示:

在服務器上面創建虛擬機之前需要提前準備ISO鏡像檔案,需要保證每個新建的虛擬機采用不同的ISO檔案,不然的話會出現各個虛擬機會對同一個檔案產生讀寫沖突,我個人選擇的是Ubuntu16.04的鏡像檔案,首先應該將所需檔案上傳到服務器上面,點擊存盤->資料存盤瀏覽器,就可以在服務器創建自己的檔案夾,并可以將ISO檔案上傳到檔案夾中以備后用,接下來我們開始創建自己的虛擬機,以新建Master主機為例:依次點擊創建/注冊虛擬機->創建新的虛擬機->輸入相應的資訊下一步->選擇相應的配置,在如下步驟處點擊自己的鏡像檔案,點擊完成即可看見自己新建好的虛擬機,

隨后啟動自己的虛擬機,接下來的步驟如在Vmware中創建虛擬機的步驟一樣,不再贅述了,值得注意的是在最后配置新的Linux的用戶密碼的步驟時,大資料分布式集群中的各臺主機用戶名應該一致,接下來就可以進入新建好的虛擬機中了,首先需要解決的是網路連接的問題,由于在新建的虛擬機中無法通過DHCP來訪問網路,需要自己靜態的配置網路來使得每臺虛擬機能夠連上網路,如下圖所示,IP配置應該按照學校留給學生的可以使用的IP范圍10.13.0.33~10.13.0.60來配置,子網掩碼為255.255.255.0,網關10.13.0.1,DNS服務器:202.117.80.2,按照上面資訊配置以后就可以看見虛擬機可以正常地連接到網路了,值得注意的是,因我已經在服務器上搭建了5臺虛擬機已經占據了10.13.0.33~10.13.0.37地址,希望今后同學再進行實驗時應避開如上地址,建議問一下專門負責的老師,

需要提醒的是直接在服務器上面操作每臺虛擬機時不如在本地的VMwrae中操作虛擬機方便,有延遲,后續的話我們建議采用Xshell和Xftp兩個好用的小工具來連接到遠程的虛擬機,下面介紹一下怎樣用Xshell和Xftp來連接虛擬機,首先應該在虛擬機中安裝openssh-server和vsftpd軟體,
1.更新apt源
sudo apt-get update
2.安裝openssh-server,每個需要輸入的選項按y即可,
sudo apt-get install openssh-server
3.安裝ftp服務,原理同上,
sudo apt-get install vsftpd
4.采用下面命令來查看行程和埠,若有sshd這個行程證明ssh服務啟動成功,若無的話,建議重啟ssh服務,再次查看,
ps-ef|grep sshd
netstat -antp|grep ssh
可以看見sshd行程在本機的22埠成功運行
5.獲取本機ssh密鑰 ,可以在本機的~/目錄下面.ssh檔案夾下面看見生成了id_rsa.pub檔案,
ssh-keygen -t rsa -P ""
這樣的話,在虛擬機端的配置完成,接下來打開Xshell(Xftp同理),新建會話->輸入IP地址,登錄的用戶名以及其密碼即可登錄到遠程的虛擬機,第一次需要將遠程的虛擬機的密鑰保存到本地主機上,Xshell登錄成功后如下圖所示:

Xftp登錄成功后如下圖所示:
有關這兩個軟體連接到遠程的虛擬機上的可能會產生的問題匯總(若能成功連接到遠程虛擬機,跳過下面的步驟):
1.如果連接失敗的話會導致服務器上面的虛擬機無端的卡死,只要連接失敗就會卡死,無法進行任何操作,我個人的解決方案是再次重啟服務器上的虛擬機,
2.在用xftp來進行傳送接收檔案時,會產生permission deny的錯誤,原因是權限不夠,或者是登錄的用戶沒有權限操作檔案夾,這就要求我們每創建一個新的檔案夾必須給它一定的權限和確定改檔案夾的所有者是誰,每個檔案夾我自己圖省事都給了777的權限,
chmod 777 filename
chown -R username filename
3.每次新建立一個連接可能會自己斷掉,或者是前些時間可以連接到,而再次打開時就出現連接失敗的情況,我本人出現了很多次這樣的情況,很令人畝訓,個人總結了一點經驗就是,第一檢查登錄的用戶名和密碼確保輸入的都正確,第二每次連接失敗的話先把服務器端的已經失去回應的虛擬機全部重啟再連接,看網路上其他人的方法總結如下:(1)防火墻未關閉,在自己的主機上的防火墻上建立新的 進入規則,針對21,22埠新建信任埠,在遠程的虛擬機上也通過ufw命令來關閉防火墻或者是指定信任的埠,(2)修改ssh的檔案夾權限,或者是修改位于~/.ssh/sshd_config檔案中的permitrootlogin選項,(可以具體情況具體分析)
注以上列舉的方法我試過了,但是沒有解決我面臨的問題,我目前是Xshell可以連接到遠程的master主機,與slave機器連接不穩定,容易掉連接,我的解決思路是,利用Xftp來上傳本地機器上的檔案到master主機上,然后通過ssh協議將master主機上的檔案傳遞給若干個slave節點(如下面代碼所示,首先需要解決在集群中的免密登錄,在第二節會跟大家詳細介紹,大家先了解一下該思路),對各個slave節點進行操作時也可以通過ssh協議免密登錄到若干slave節點,再對其進行操作,
寫在本節最后的話,因為作者的能力也有限,有很多東西也是靠自己不斷地百度,查看博客得來的,也有部分問題未能得到妥善的解決,只是分享一下作者面臨的諸多問題以及分享一下解決的經驗,所以有同學在實驗程序中遇到了不一樣的問題時,歡迎各位在本文下面評論區留言,大家也可以互相討論學習一下,我也會積極回復大家的問題的,也祝愿大家在趙老師帶的大資料原理技術的課程中學到很多有用的知識,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355719.html
標籤:其他
上一篇:在AndroidKotlin的ConstraintLayout中設定適當的約束
下一篇:淺談繞過CDN(補充)
