搭建VM的虛擬機器下hadoop叢集環境
前言
大家都知道,Hadoop的部署方式可分為
- 單機模式
- 偽分散式
- 完全分散式
本篇主要講解的就是完全分散式。
搭建完全分散式的叢集環境,需要多臺的硬體裝置,作為初學者,為了搭建叢集去買多臺電腦,多少有點不現實,所以這裡我採用的是VM虛擬機器,模擬搭建一個由三臺機器組成的叢集。
要想成功搭建的分散式環境,需要具備安裝和操作VM虛擬機器
,使用Ubuntu
系統的基本命令,Linux
下安裝Java
以及Hadoop
等相關技能。不過不會的話,也不用太擔心,我會盡量把我的操作過程寫得詳細一點。
具體的搭建過程可以分為以下幾個階段:
- 安裝虛擬機器
- 安裝和配置Ubuntu
- 安裝和配置Java環境
- 安裝和配置Hadoop
安裝虛擬機器
VMware Workstation 下載 http://rj.baidu.com/soft/detail/13808.html?ald
啟用碼百度一搜一大堆,這裡就不寫了,安裝過程也比較簡單,實在不會的,百度上也有圖解的教程,請自行搜尋。
安裝和配置Ubuntu
Ubuntu 下載https://www.ubuntu.com/download
下面介紹如何在虛擬機器中安裝Ubuntu
作業系統,我們需要安裝三臺虛擬機器,分別命名為Hadoop
Master
(以下簡稱master
),Hadoop
Slave1
(以下簡稱slave1
Hadoop
Slave2
(以下簡稱slave2
),以下以安裝master
為例
1、首先,開啟安裝好的虛擬機器VMware Workstation 12 Pro
(以下簡稱VM)
2、依次點選 檔案
→ 新建虛擬機器
3、選擇 自定義(高階)(C)
,點選 下一步
4、硬體的相容性選擇,使用預設的設定,直接點選 下一步
5、點選 瀏覽
,選擇下載好的Ubuntu的iso檔案,點選 下一步
6、填寫安裝資訊,點選 下一步
7、命名虛擬機器,為了方便我們後續識別,安裝第一個系統時,我們命名使用Hadoop Master
Hadoop
Slave1
和Hadoop Slave2
,用於表示第一個是主伺服器,第二個和第三個屬於從伺服器),點選瀏覽,選擇一個本機的空間稍微大一點的目錄用於存放我們安裝系統的物理檔案,點選 下一步
8、處理器配置,根據自己機器的CPU情況來設定,比如我的是四核的,處理器數量就選擇4
,處理器的核心數量使用預設的1
就行,點選 下一步
9、設定記憶體,注意,必須是4MB的倍數,根據自己機器的記憶體來設定。比如,我的PC主機記憶體是8G,我為每臺虛擬機器設定1.5G(1536MB)的記憶體,主機剩餘3.5G記憶體,這樣主機不卡,虛擬機器記憶體也足夠使用。原則上說,給虛擬機器設定的記憶體總和不要超過PC主機的實體記憶體就行,只不過設定太高,主機就會變慢。
10、網路型別,這裡選擇使用橋接網路,因為我們需要主機與虛擬機器與網際網路,這三者都是通的,在安裝的過程中,才不會遇到麻煩。
11、I/O控制器和磁碟型別,都使用預設的選項即可,點選 下一步
12、選擇磁碟,選擇建立新的虛擬磁碟,點選 下一步
13、指定磁碟容量,也就是設定虛擬機器系統佔用主機的物理空間的大小,使用預設值即可。
14、指定磁碟檔案,預設即可,點選 下一步
15、點選 完成
,等待虛擬機器系統安裝完成,安裝過程中,請保持網路暢通。
16、同理,安裝另外兩臺虛擬機器Hadoop Slave1
和Hadoop
Slave2
,都安裝好後,如下圖
17、分別設定每臺虛擬機器的固定IP,保證虛擬機器與虛擬機器與主機之間都能夠相互ping通。具體操作這裡就不贅述了,網上資料有很多,如果是公司電腦,讓網路管理員幫忙設定下,如果是自己的機器,看下自己的路由器的IP分配情況
18、我們要搭建一個由三臺機器組成的叢集,先配置虛擬機器的hosts
和hostname
,以便虛擬機器與虛擬機器與主機之間不用使用IP,使用hostname
就可以相互識別,很方便。
- 1
- 2
- 3
- 1
- 2
- 3
以master為例,通過命令:
- 1
- 1
設定為master
,另外兩臺虛擬機器分別設定為slave1
和slave2
- 1
- 1
三臺虛擬機器都設定成以下的配置
19、配置三臺虛擬機器之間的SSH
無密碼登入
首先通過命令生成公匙:
- 1
- 1
將公匙新增到authorized_keys
檔案中:
- 1
- 1
這樣,localhost就可以無密碼登入了,看下效果:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
同理,將公匙複製到slave1
和slave2
的authorized_keys
檔案中,就可以讓master
無密碼登入slave1
和slave2
了。
通過命令遠端複製:
- 1
- 2
- 1
- 2
分別到slave1
和slave2
機器上,新增master
的公匙資訊到authorized_keys
檔案中:
- 1
- 1
- 1
- 1
到master
上,測試一下效果:
同理:
- 在
slave1
生成公匙,然後複製到master
和slave2
的authorized_keys
檔案中,這樣slave1
就可以無密碼登入master
和slave2
- 在
slave2
生成公匙,然後複製到master
和slave1
的authorized_keys
檔案中,這樣slave2
就可以無密碼登入master
和slave1
以上就是三臺虛擬機器的SSH無密碼登入配置方法,大家可以根據實際的使用情況來設定,並不一定非要三臺都支援雙向的無密碼登入。
安裝和配置Java環境
安裝JDK: 下載 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
1、以master
為例,下載完,解壓,這些最好都在hadoop使用者的根目錄下執行,可以避免在其他目錄沒有許可權的問題,解壓完在移動到/usr/lib/jvm/jdk1.8.0_121
目錄下面,這個不是必須的,大家也可以移到其他目錄:
- 1
- 2
- 3
- 1
- 2
- 3
2、配置環境變數
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
將上面的內容新增到~/.bashrc
檔案中,注意,JAVA_HOME
後面的路徑改成自己的安裝路徑:
- 1
- 2
- 1
- 2
使用Java -version
命令檢視版本,如果出現以下資訊,說明配置成功了:
同樣,也把slave1
和slave2
安裝和配置好java
環境
安裝和配置Hadoop
hadoop下載 http://hadoop.apache.org/releases.html
hadoop
叢集中每臺機器的配置都基本相同,我們先配置好master
,然後複製到slave1
和slave2
上
1、下載並解壓,並重命名目錄為hadoop
,移動到/usr
目錄下去
- 1
- 2
- 1
- 2