1. 程式人生 > >Hadoop----叢集搭建指南(上卷)

Hadoop----叢集搭建指南(上卷)

前言


閱讀本文,需要具備Linux、計算機網路的基礎知識。所以在文中出現的相關基礎知識,均以連結的形式給出,務必理解該連結的內容後,繼續閱讀本指南。

叢集搭建的環境多種多樣,本文采用VitualBox安裝5臺虛擬機器構建叢集。具體環境:

  • CentOS 6.5 64位
  • VirtualBox 5.1.10 Mac版
  • 本機macOS Sierra 10.12.1 i7 8G記憶體

單臺裝機


先下載CentOS的iso格式純淨映象,可以下載LiveDVD和minimal兩個版本。
本文采用LiveDVD版做演示。

開啟virtualbox:

叢集搭建 谷震平

點選”新建”按鈕:

叢集搭建 谷震平

選擇版本,並命名:

叢集搭建 谷震平

點選”繼續”按鈕,改記憶體大小:

叢集搭建 谷震平

點選”繼續”按鈕,改虛擬硬碟:

叢集搭建 谷震平

點選“建立”按鈕,改硬碟型別:

關於磁碟型別,參考:https://zhidao.baidu.com/question/1302436594642278379.html
叢集搭建 谷震平

點選”繼續”按鈕,改儲存方式:

叢集搭建 谷震平

繼續,改檔案位置和大小:

叢集搭建 谷震平

點選”建立”,主介面顯示該機器:

叢集搭建 谷震平

選中該機器,點選主介面”設定”按鈕:

叢集搭建 谷震平

點選”系統”,修改”啟動順序”:

叢集搭建 谷震平

點選”網路”,修改網絡卡1:

叢集搭建 谷震平

為修改網絡卡2,先關閉該對話方塊,開啟vitualbox管理介面:

叢集搭建 谷震平

點選偏好設定:

叢集搭建 谷震平

點選”網路”:

叢集搭建 谷震平

選擇”僅主機(Host-Only)網路”:

叢集搭建 谷震平

點選新增按鈕(右邊綠色按鈕),新增vboxnet1:

這裡寫圖片描述

點選OK儲存,再次選中該虛機(hadoop6),開啟主介面的”設定”按鈕,點選”網路”,點選”網絡卡2”,勾選”啟用網路連線”,選擇連線方式:

叢集搭建 谷震平

選vboxnet1,則其餘所有節點均需保持一致。點選OK儲存。此時點選主介面的”啟動”按鈕:

這裡寫圖片描述

選擇Centos的iso檔案所在位置,點選”啟動”。在彈出黑色介面時(有9秒時間),按一次任意的某個鍵,進入Boot介面。選擇第一種安裝方式:verify and boot:

這裡寫圖片描述

按下回車鍵,進入centos系統:

這裡寫圖片描述

雙擊系統桌面的”install to hard drive”:

這裡寫圖片描述

進入安裝介面:

這裡寫圖片描述

一路點選next按鈕,點選yes即可。時區選亞洲上海,root賬戶的密碼要牢記。然後,進入等待介面:

這裡寫圖片描述

點選”close”,關閉安裝介面:

這裡寫圖片描述

關閉該虛擬機器,調整系統啟動順序。選中該虛機,點選”設定”,點選”系統”,調整”啟動順序”,將”硬碟”放在第一位,將”光碟機”放在最後一位:

這裡寫圖片描述

點選ok儲存,再次啟動該虛機,進入設定頁面:

這裡寫圖片描述

一路forward即可,建立使用者名稱和密碼自己定義:

這裡寫圖片描述

為叢集選擇同一時間,需要勾選synchronize date and time over the network.防止某個節點掛了以後和其他節點的系統時間不一致:

這裡寫圖片描述

一路forward,點選finish,進入登陸介面:

這裡寫圖片描述

注:如果採用minimal安裝方法,裝機方式僅有兩處與上述不同:

選第一種安裝方式
這裡寫圖片描述

選skip,跳過檢測
這裡寫圖片描述

其餘過程,同上述LiveDVD版安裝過程。

叢集搭建


重複上述步驟,安裝5臺虛擬機器。此時需要配置叢集的網路:配置網絡卡,修改hostname,新增host解析,新增普通使用者。

配置網絡卡

通過上述步驟的裝機方法,每臺機器中都將有兩個網絡卡eth0和eth1。eth0作為虛機網路的公網網口,eth1作為虛擬機器網路的內網網口。

配置網絡卡,需要在目錄:/etc/sysconfig/network-scripts下新建以ifcfg-ethX(X是一個數字,從0開始,一般到3結束。)檔案。
所以,關於eth0的配置在:/etc/sysconfig/network-scripts/ifcfg-eth0;

關於eth1的配置在:/etc/sysconfig/network-scripts/ifcfg-eth1。

如果有不明白的地方,可以參考下文—-CentOS網路配置詳解。

配置eth0

在System->Preferences->Network Connections,進行配置。
這裡寫圖片描述

先編輯Auto eth0:
這裡寫圖片描述

連線名修改為eth0,勾選所有使用者可用,設定IPv4,選擇DHCP即可:
這裡寫圖片描述

點選Apply,輸入root賬戶驗證即可。

如果採用minimal版本的CentOS安裝,檔案配置方法,需要在/etc/sysconfig/network-scripts/ifcfg-eth0中修改:

  • ONBOOT=yes
  • BOOTPROTO=dhcp

其他引數均由系統自動生成:
這裡寫圖片描述

其餘幾臺節點的eth0和上述相同。這樣所有節點的公網IP是相同的。只要宿主機可以上網, 那麼所有節點均可上網。

配置eth1

eth1採用host-only模式,在Manual方法下填寫ip。網段確定在192.168.xx.xx中。
對於5個節點的叢集,主機名為hadoop1-hadoop5,則ip分別是:

  • 192.168.20.2 hadoop1
  • 192.168.20.3 hadoop2
  • 192.168.20.4 hadoop3
  • 192.168.20.5 hadoop4
  • 192.168.20.6 hadoop5

先編輯Auto eth1, 設定IPv4,選擇Manual,新增ip,子網掩碼,閘道器:
這裡寫圖片描述

點選Apply,驗證root賬戶,即可成功。這樣192.168.20.2就分配給這臺機器了(下面說把這臺機器變成hadoop2)。

如果採用minimal版本的CentOS安裝,檔案配置方法,需要在/etc/sysconfig/network-scripts/ifcfg-eth1中修改:

  • ONBOOT=yes
  • BOOTPROTO=none
  • IPADDR=192.168.20.2
  • NETMASK=255.255.255.0

其他引數(注意不要配置gateway)均由系統自動生成:
這裡寫圖片描述

其餘幾臺機器同上述配置過程,只需要更改IP(IPADDR引數)即可,子網掩碼和閘道器(minimal不用配)均相同。

修改hostname

一般是localhost開頭,但是不容易標識機器。改成可標識的。有5臺機器,那麼這5臺機器可以對應hadoop1-5。

修改檔案的目錄在: /etc/sysconfig/network
這裡寫圖片描述

將HOSTNAME這個引數改掉即可。對於5個節點,分別在每臺機器上修改為hadoop1-5。

新增host解析

每臺虛機都有ip,但是ip難記,加個host解析,方便使用。

配置檔案在:/etc/hosts

這裡寫圖片描述

先把127.0.0.1改成你已經修改的hostname的值,比如在hadoop1(192.168.20.2)這臺機器上,需要改成:

  • 127.0.0.1 hadoop1
  • ::1 hadoop1

這裡,每個節點是不同的。

所有的節點均需新增內容:

  • 192.168.20.2 hadoop1
  • 192.168.20.3 hadoop2
  • 192.168.20.4 hadoop3
  • 192.168.20.5 hadoop4
  • 192.168.20.6 hadoop5

儲存即可。

新增普通使用者

新增普通賬號,比如:deploy,分配給使用者。配置/etc/sudoers檔案,使得該賬戶也可以進行sudo操作。

此處較為簡單,參考下文—-linux的賬戶。

裝機的思考


為什麼需要兩個網絡卡?

如果只使用預設的 NAT,會發現一旦宿主機斷開公網,自己的幾臺虛機之間也會無法通。最簡單的解決方案是雙網絡卡,如下圖所示:

這裡寫圖片描述

為什麼修改兩次系統啟動順序?

第一次裝機是系統是來自iso檔案的(光碟機啟動)。每次都從該檔案啟動,則無法對系統進行定製修改。將其裝在硬碟上(自己的虛擬硬碟),每次從硬碟啟動即可對系統進行定製修改。

所以,需要改變啟動順序。裝到硬碟後,從硬碟啟動。

linux的賬戶

root賬戶許可權太大,必須給開發者一個使用賬戶。

相關連結:http://linuxme.blog.51cto.com/1850814/347086/

CentOS網路配置詳解

包含網路配置的很多東西:
http://blog.chinaunix.net/uid-26495963-id-3230810.html

結語

筆者目前是資料倉庫、Python、Hadoop的技術棧,以前是一名前端開發人員。2年開發經驗,還有許多要學習的地方。有興趣和我一起提高IT技術的同學,歡迎加入微信群–小谷的IT圈。掃碼進入:

這裡寫圖片描述