1. 程式人生 > >CM+CDH構建企業大資料平臺系列(六)

CM+CDH構建企業大資料平臺系列(六)

一、克隆Linux虛擬機器

    1、為什麼要克隆虛擬機器?

    第一:我們要搭建分散式叢集,需要多臺虛擬機器

    第二:我們不想像安裝第一臺虛擬機器那樣從頭到尾做多次重複的操作,既浪費時間又沒有什麼技術含量。

    那麼怎麼辦呢?

    所以我們就採用克隆的方式,你想要多少臺虛擬機器就克隆多少臺。但是我們一定要注意,克隆就意味著所有虛擬機器的狀態資訊都是一樣的。而我們需要的是多臺不一樣的機器,至少名字不一樣吧,所以在克隆之後就需要我們做相應的修改。並不是克隆完之後就可以直接用的。這個我們克隆完之後再說。

    2、如何克隆虛擬機器?

    (1)在你要選擇克隆的虛擬機器上“右鍵”——>“管理”——>“克隆”即可,如下圖所示。

    (2)在彈出的對話方塊中點選“下一步”,如下圖所示。

    (3)選擇“虛擬機器中的當前狀態”,然後點選“下一步”,如下圖所示。

    那麼虛擬機器當前的狀態是什麼呢?

    實際上就是你上次操作完虛擬機器時的狀態。如果你不標明虛擬機器當前的狀態,時間長了,鬼知道你上次的狀態是什麼?

    所以強烈建議大家每做完一部分操作最好對虛擬機器當前的狀態進行快照。那麼這裡就要注意:克隆虛擬機器之前首先要確定你克隆的是虛擬機器的哪個狀態,由於不同的虛擬機器狀態儲存著使用者對虛擬機器的不同操作,所以克隆不同狀態的虛擬機器就意味著接下來對虛擬機器的操作就會有所不同,為了簡單,我們直接克隆Linux虛擬機器搭建起來的最初狀態。

    那麼首先就需要我們把虛擬機器的狀態切換到虛擬機器搭建起來的最初狀態。然後繼續進行克隆。

    (4)選擇“建立完整克隆”,然後點選“下一步”。

    (5)可以修改“虛擬機器名稱”和“虛擬機器安裝位置”,然後點選“完成”即可。

    這樣虛擬機器就克隆完成了。我們可以按照同樣的方法克隆多臺虛擬機器,為分散式叢集的搭建提前做好機器準備。

二、虛擬機器克隆完之後待解決的問題?

    克隆就是複製,複製就會導致有相同的資訊,現在各個機器的狀態都是一樣的,一個模子刻出來的,而我們需要的是多個不同的主機,所以說就需要我們做相應的修改,否則會導致各種問題。

 (一)要修改哪些資訊呢?

    主要有兩點:

    1、主機名

    主機名就是每臺機器的名字,如果主機名配置不正確,就會導致對各個主機之間的訪問出現問題。(就像一個父母有3個還不是3胞胎的孩子,明明知道每個孩子都不一樣,但是如果名字一樣,你怎麼叫?叫的是誰呀?就會出現問題,所以說一定要處理好主機名的問題)

    2、網絡卡

    網絡卡是什麼?網絡卡是一塊被設計用來允許計算機在計算機網路上進行通訊的計算機硬體,區域網中每一臺計算機的網絡卡理論上都是全球唯一的。當然虛擬機器裡邊的是一個虛擬的網絡卡,但是克隆完之後就會導致各個虛擬機器的網絡卡都是一致的,(說白了,還是克隆完之後會導致網絡卡名字資訊重複的問題) 所以說,克隆完虛擬機器之後就需要我們首先解決這兩個最明顯的問題。

 (二)如何解決虛擬機器克隆完之後的問題呢?

    1、首先解決主機名的問題

    比如每臺機器的主機名是什麼?怎麼改?在哪改?怎麼知道有沒有改成功?等等。

    (1)首先我們來檢視一下當前機器的主機名是什麼?

    直接在命令提示符後輸入hostname命令即可。

    (2)在哪改?

    這些資訊肯定是儲存在某個檔案裡的,可以直接輸入命令vi /etc/sysconfig/network即可,即在/etc/sysconfig目錄下對network檔案進行相應的編輯修改。

    (3)改成什麼?

    實際上就是給這臺機器取個名字,當然你可以隨便取,但是在實際開發過程中最好還是按照規範進行主機名的配置。比如:機架+節點構成主機名,如下圖所示。

    本課程我們把3臺機器的主機名分別改成node-cm01.djt.com,node-cm02.djt.com,node-cm03.djt.com。

    (4)怎麼改?兩種方法:

    a:臨時性修改:

    hostname 主機名。比如:直接輸入命令hostname djt

    缺點:這種修改方式是臨時性的,當虛擬機器重啟之後就不起作用了,因為配置檔案中很多地方都會涉及到主機名的配置,隨便修改主機名會導致主機名不一致的問題,除非你把所有涉及到主機名配置的地方都進行修改,所以我們更希望主機名定義完之後不會被隨便修改,因此一般不推薦使用臨時性修改的方法。

    b:永久性修改:

    直接修改對應的檔案,輸入命令vi /etc/sysconfig/network即可進行相應的修改。如下圖所示。

    (5)檢查是否修改成功?

    常見的兩種方式:

    a:直接輸入hostname命令檢視

    b:在命令提示符前對應主機名的位置可以看到主機名的變化。當主機名超過一定長度之後主機名可能顯示不全。如下圖所示。

    注意:採用永久性修改方式修改完主機名之後要重啟Linux虛擬機器,否則不會立即生效。(我們也可以先不重啟,因為後邊關閉防火牆也需要重啟,到時候我們一塊重啟)

    2、解決網絡卡的問題

    前邊我們說過網絡卡是一塊被設計用來允許計算機在計算機網路上進行通訊的計算機硬體,實際上就是怎麼實現主機聯網的問題。Linux虛擬機器安裝成功之後,因為我們需要在虛擬機器上通過網路進行一些檔案的上傳和下載,那麼首先要保證我們的虛擬機器是可以聯網的,所以我們還要進行Linux虛擬機器的網路配置。

    (1)如何進行Linux虛擬機器網路的配置?

    1)ping 迴環地址

    輸入ifconfig,我們發現只有迴環地址,那麼我們就先ping 127.0.0.1,如果能ping 通,那就說明我們的網路協議是好的,一般情況下也都是能ping通的。

    2)ping閘道器,檢查一下網絡卡鏈路是否有問題。

    這裡面就牽涉到一個問題:我的閘道器是多少?在哪裡看?

    詳情如下圖所示。

    我們發現閘道器地址ping不通,如下圖所示。那麼就說明當前我們的網絡卡鏈路有問題?

    3)解決網絡卡鏈路問題

    a:首先來檢視一下網絡卡資訊,網絡卡資訊通過下面這個檔案檢視。

    我們輸入命令vi /etc/sysconfig/network-scripts/ifcfg-eth0即可。

    我們發現ONBOOT=no,即網絡卡沒有啟動,所以要把no改為yes,啟動網絡卡,然後通過輸入service network restart命令重啟網絡卡服務,但是是不成功的。那是什麼原因呢?(我儘可能的把操作過程中常見的問題給大家重現一下,分析問題原因,然後再去有針對性的解決,這樣即使大家遇到問題的時候也就很容易解決了)

     b:由於是克隆的,所以會有兩個網絡卡資訊,我們首先做以下處理。我們輸入命令: vi /etc/udev/rules.d/70-persistent-net.rules,修改如下資訊

    c:然後我們輸入命令修改網絡卡 vi /etc/sysconfig/network-scripts/ifcfg-eth0

    修改完成之後,我們重啟網絡卡,service network restart,但是還不行,這實際上還是需要我們重啟系統,重啟服務看來是不行的。

    d:輸入reboot 重啟系統。

    e:再次輸入ifconfig,此時就能看到IP地址,接下來我們就ping 閘道器 然後ping IP、ping 外部網路(比如www.baidu.com)如果都能ping 通,說明我們的網路配置就正常了。

     4)然後在3臺機器上做同樣的操作,保證3臺機器都能正常的連線到外部網路。