1. 程式人生 > >從VMware虛擬機器安裝到hadoop叢集環境配置詳細說明

從VMware虛擬機器安裝到hadoop叢集環境配置詳細說明

虛擬機器安裝

我安裝的虛擬機器版本是VMware Workstation 8.04,自己電腦上安裝的有的話直接在虛擬機器安裝Linux作業系統,沒有的話這裡有我的一個百度雲網盤虛擬機器安裝共享檔案

虛擬機器的具體安裝不再詳細說明了。  

Linux作業系統安裝除錯   

安裝說明

本次採用的作業系統的Linux CentOS(Linux的一個版本),Hadoop叢集平行計算最少需要三個節點,也就是虛擬機器裡面的三個作業系統,一個節點做namenode,另外兩個節點做datanode(之所以稱為“並行”的原因,datanode大於等於2個才能叫“並行”)

版本選擇

  • 主、次版本為奇數:發展中版本(development)
    如2.5.xx,這種核心版本主要用在測試與發展新功能,所以通常這種版本僅有核心開發工程師會使用。 如果有新增的核心程式程式碼,會加到這種版本當中,等到眾多工程師測試沒問題後,才加入下一版的穩定核心中;
  • 主、次版本為偶數:穩定版本(stable)
    如2.6.xx,等到核心功能發展成熟後會加到這類的版本中,主要用在一般家庭計算機以及企業版本中。 重點在於提供使用者一個相對穩定的Linux作業環境平臺。

我目前安裝版本是5.10

LinuxCentOS安裝

學Linux的應該都知道《鳥哥的Linux私房菜》吧,很經典,操作指導很詳細,我安裝的Linux CentOS就是參考這個來的,網上有電子書下載,隨便搜一下就能找到,網頁版的也有,具體安裝參考地址http://vbird.dic.ksu.edu.tw/linux_basic/0157installcentos5.php

說明:這個不是虛擬機器下的安裝說明,網上也有虛擬機器下的安裝教程,大同小異,下載完安裝映象檔案之後就是選擇這個就像檔案的事兒了。

VMwareTools安裝

安裝說明:

在虛擬機器中安裝作業系統和安裝完之後在虛擬機器的作業系統的操作時會發現,滑鼠在虛擬機器中的作業系統和電腦中的實際Windows作業系統之間來回移動切換的時候必須按ctrl+alt和ctrl+G,VMware Tools的安裝可能使滑鼠在二者之間的來回移動切換隨意自如。

具體安裝流程如下:

1.        點選VMware最上面的“虛擬機器”選單選項,並選擇下拉選單中的“安裝 VMware Tools”,這時VMware Tools映象會自動載入

2.        複製VMwareTools-8.8.4-743747.tar.gz到桌面

3.        開啟終端並輸入命令cd Desktop轉到桌面

4.        解壓:tar xzvf VMwareTools-8.8.4-743747.tar.gz

5.        轉到解壓出來的目錄:cd vmware-tools-distrib/

6.        執行安裝命令:./vmware-install.pl

7.        接下來不斷的按Enter,遇到選擇“yes”或者“no”的一律輸入“yes”

安裝完成之後重新登出在登入即可看到效果

也可參考我的一篇CSDN部落格:

網路配置

虛擬機器中安裝完Linux CentOS之後應該是不能聯網的,此時要進行網路引數的設定。

下圖為虛擬機器設定截圖


VMware提供了兩個虛擬的網路連線,VMnet1VMnet8,安裝VMware後,系統中會出現這兩個網路連線。如果沒有這兩個網路連線,說明VMware安裝不正確。

CentOS通過VMnet1VMnet8進行網路通訊。在CentOS中,“Virtual Machine Settings”--"Network Adapter"專案下,如果選擇“Host-only:A private network shared with the host”,則通過VMnet1虛擬連線進行網路通訊;如果選擇“NAT:Used to share the host's IP address”,則通過VMnet8虛擬連線進行網路通訊。


我的電腦是連線的無線,網路介面卡截圖如下


在無線網路連線處右鍵選擇“屬性”,由於我選擇的是“NAT虛擬連線”,所以選擇VMnet8,設定如圖中所示


首次設定點選“確定”時,會有一個彈出視窗,此時要注意看,它會給本地虛擬機器中的作業系統分配一個區域網IP地址段,相當於在自己電腦中的虛擬機器中建立的一個“虛擬區域網”,彈出視窗中我被分配的網路的是192.168.0.1,可使用的網段應該是192.168.0.2—192.168.2.254,其中192.168.0.1為閘道器,192.168.0.255為廣播地址,這兩個不能用,由於我在虛擬機器中安裝了3個作業系統,所以就分配分配了192.168.0.2,192.168.0.3,192.168.0.4這三個IP,這些分配的IP可以在192.168.0.2—192.168.2.254這253個IP中任意選擇。

不知道看明白沒?給你例子,假如在點選“確定”時看到分配的網路不是192.168.0.1,而是192.168.137.1,那麼可以分配給虛擬機器的IP為192.168.137.2—192.168.137.254這253個。

這些知道之後,還要確保本地Windows作業系統中的虛擬機器相關服務是開啟的,如圖,

沒有開啟的話,滑鼠放在相應的服務上右鍵選擇“開啟”


l  之後就可以進入虛擬機器中進行設定了,如圖,開啟“網路”


l  之後顯示如下圖:


l  雙擊“紅下劃線部分”,出現下圖,由於上面提到我給三個虛擬機器分配的IP地址依次為192.168.0.2,192.168.0.3,192.168.0.4,這是第一個虛擬機器,分配的地址是192.168.0.2,子網掩碼一律填寫255.255.255.0,預設閘道器就是上面提到的“虛擬區域網”的閘道器192.168.0.1


l  進行網路設定的“DNS”設定項,如圖,其中主機名自己隨意定,但要記得,後邊會用到,主DNS(P)填寫閘道器192.168.0.1即可


這些設定完之後選擇網路設定的“裝置”設定項,如下圖,點選“啟用”


l  配置完之後應該就在自己的電腦上的虛擬機器中建立了一個由三個虛擬機器組成的“虛擬區域網”了。


虛擬機器中的JDK安裝

說明

l  三個虛擬機器中都要安裝JDK,Hadoop只需在第一個虛擬機器(這個虛擬機器為NameNode,即名稱節點)上安裝,安裝完並配置之後在Shell終端用命令直接拷貝到另外兩個虛擬機器上即可。

l  JDK和Hadoop安裝包我都存放在了虛擬機器作業系統中的/usr/java目錄中,安裝是在Shell終端輸入命令進入此目錄,並輸入安裝命令,安裝之後的會在此目錄生成一個安裝之後的檔案。

安裝步驟

l  把安裝檔案拷貝到使用者目錄      例如:/usr/java目錄下 

l  解壓檔案 : tar  -xzvf  jdk-7u10-linux-i586.tar.gz   , 解壓後,在/usr/java目錄下就會生成一個新的目錄jdk1.7.0_10,該目錄下存放的是解壓後的檔案。       至此,安裝工作基本完成。

注意:如果下載的檔案是rpm 格式的話,可以通過下面的命令來安裝: rpm  -ivh  jdk-7u10-linux-i586.rpm

環境變數的設定

配置環境變數有以下2種方式: 

1.        修改.bashrc檔案或者.bash_profile檔案,在檔案中加入以下語句: 

export  JAVA_HOME=/usr/java/jdk                                                                      

export  PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin                                              

export  CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib                                                   

2.        修改.profile檔案 (推薦此種方式,這樣其他程式也可以友好的使用JDK) 

檔案位置:/etc/profile                                                                                          

開啟profile,在檔案中找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC,並改為下面形式: 

export  JAVA_HOME=/usr/java/jdk                                                                      

export  PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin                                                

export  CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib                                                 

讓環境變數生效 

1)        執行配置檔案令其立刻生效 

source  /etc/profile                                                                                  

2)        之後執行以下命令驗證是否安裝成功 

java  -version                                                                                       

如果出現下面的資訊,則表示安裝成功 


Hadoop的安裝配置

說明

1.        本次安裝配置全都在Linux CentOS的root許可權下進行操作,沒有在虛擬機器中新建專門賬戶。

2.        這裡的檔案配置會用到Linux中的Vi編輯器,最好先熟悉一下編輯器的操作。

Hadoop的安裝配置我主要也是參考dataguru的視訊來的,hadoop的安裝版本和視訊保持一致,版本為hadoop0.20.2,下載地址:

1.        hadoop0.20.2的解壓安裝。在Shell終端中輸入命令進入hadoop0.20.2壓縮包所在目錄,之後輸入安裝命令 :tar xzvf hadoop-0.20.2.tar.gz

2.        配置hosts檔案。配置目錄/etc之下名稱為hosts的檔案,如圖所示,加入紅線標註的兩行,具體就是把另外兩個充當dataNode的虛擬機器節點的IP地址和主機名稱加入進來,其功能類似於DNS伺服器的地址解析功能。


3.        配置ssh免密碼連線。三臺虛擬機器都要進行此操作)進入Shell終端輸入命令ssh-keygen –t rsa在各個虛擬機器節點中生成ssh金鑰對,目的是使得各個節點免密碼進行彼此ssh連線,具體如圖,初次操作時僅生成id_rsa和id_rsa.pub兩個檔案,輸入命令cp id_rsa.pub authorize_keys進行拷貝,由於我的電腦上之前進行過這些操作,所以紅線標註部分和初次操作不一樣。之後,開啟生成檔案存放的目錄,並用文字編輯器開啟authorized——keys檔案,將三臺虛擬機器中的這個檔案拷貝到同一個檔案裡,之後將包含這三個虛擬機器金鑰對資訊的authorized——keys檔案分別拷貝到本目錄下,並覆蓋原有的authorized——keys,這樣,每臺虛擬機器就擁有者三個虛擬機器的ssh金鑰對資訊了。


4.        在NameNode名稱節點上修改配置檔案。Shell終端中輸入命令進入hadoop檔案安裝目錄,修改conf目錄下的hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、masters、slaves這六個檔案,其中masters、slaves的配置為masters中寫入作為NameNode的虛擬機器名稱,slaves寫入作為dataNode的另外兩個虛擬機器的名稱,另外四個檔案hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml的具體操作為:Shell終端輸入命令進入相應的conf目錄,用命令vi+檔名開啟相應的檔案進行修改,配置分別截圖如下(圖中相應的具體含義不做具體說明了,三言兩語估計也說不清,可以自己在網上查)

修改hadoop-env.sh配置檔案

修改core-site.xml配置檔案

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://192.168.2.100:9000</value> --注意完全分佈模式此地一定要用IP,下同
</property>
</configuration>
注:fs.default.name NameNode的IP地址和埠

修改hdfs-site.xml配置檔案

修改mapred-site.xml配置檔案

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.2.100:9001</value> 注意完全分佈模式此地一定要用IP,下同
</property>
</configuration>

5.        複製NameNode節點的hadoop-0.20.2配置。向另外兩個dataNode節點複製NameNode節點的hadoop-0.20.2配置,例如從我的主機名為localhost1.localdomain的主機複製hadoop-0.20.2到主機名為localhost2.localdomain的主機的/usr/java目錄下的命令是:

scp –r hadoop-0.20.2 localhost2.localdomain:/usr/java

6.        格式化檔案。Shell終端輸入命令進入hadoop的解壓目錄中的bin資料夾,輸入命令:hadoop namenode –format,之後仔細觀察是否有successfullyformatted,有就出現說明格式化成功。格式化資訊版本儲存在hadoop的解壓目錄中的/tmp/hadoop-root/dfs/name/current/VERSION


7.         啟動hadoop。這些配置完之後應該可以在Shell終端中進入hadoop安裝目錄下的bin資料夾,並通過start-all.sh和stop-all.sh啟動和停止hadoop了。

8.         檢視執行狀態。啟動之後,在Shell終端中進入不同節點的jdk安裝目錄中的bin資料夾,輸入指令jps就可以檢視守護程序的執行狀態。

步驟7、8執行之後的效果如下圖

另外提供兩個詳細介紹配置的英文網址

hadoop基於Web的叢集監控介面 

監控叢集健康狀態的使用者介面

http://localhost:50070/dfshealth.jsp

通過這個介面,可以通覽檔案系統,檢查叢集每個DataNode狀態,掌握每個獨立節點上可獲得的儲存資源,並詳細檢視Hadoop守護程序的日誌來判斷叢集當前執行是否正確,監控叢集的整體健康狀態。

MapReduce作業執行狀態監控介面

http://localhost:50030/jobtracker.jsp
通過這個介面,可以監控活躍的MapReduce作業,並訪問每個map和reduce任務的日誌。還可以獲得以前提交作業(已完成的作業,失敗的作業,重試的作業)的日誌,以輔助程式的除錯。