Hadoop4 利用VMware搭建自己的hadoop集群


前言:

      前段時間自己學習如何部署偽分布式模式的hadoop環境,之前由於工作比較忙,學習的進度停滯了一段時間,所以今天抽出時間把最近學習的成果和大家分享一下。

      本文要介紹的是如何利用VMware搭建自己的hadoop的集群。如果大家想了解偽分布式的大家以及eclipse中的hadoop編程,可以參考我之前的三篇文章。

  1.在Linux環境中偽分布式部署hadoop(SSH免登陸),運行WordCount實例成功。 http://www.cnblogs.com/PurpleDream/p/4009070.html 

      2.自己打包hadoop在eclipse中的插件。  http://www.cnblogs.com/PurpleDream/p/4014751.html 

      3.在eclipse中訪問hadoop運行WordCount成功。 http://www.cnblogs.com/PurpleDream/p/4021191.html 

 

===============================================================長長的分割線====================================================================

正文:

  在之前的hadoop文章中,我主要是介紹了自己初次學習hadoop的過程中是如何將hadoop偽分布式模式部署到linux環境中的,如何自己編譯一個hadoop的eclipse插件,以及如何在eclipse中搭建hadoop編程環境。如果大家有需要的話,可以點擊我在前言中列出的前前三篇文章的鏈接。

      閑話少說,言歸正傳,本次的目的是利用VMware搭建一個屬於自己的hadoop集群。本次我們選擇的是VMware10,具體的安裝步驟大家可以到網上搜索,資源很多。

      如果大家再安裝過程中,遇到了我沒有提到的錯誤,可以先參考文章底部列出的三個問題,看看解決方案是不是在其中,如果不在的話,再自行上網搜索。

      第一步,確定目標:

      master  192.168.224.100  CentOS

      slave1   192.168.224.201  CentOS

      slave2   192.168.224.202 CentOS

      其中master為nameNode和jobTracker節點,slave1和slave2為dataNode和taskTracker節點。

 

      第二步,配置虛擬網絡,在VMware工具欄中點擊“編輯”,然后選擇“虛擬網絡編輯器”,在彈出框中設置選項;然后點擊“NAT設置”,也按照圖片設置,詳細參照如下圖:

       

      

     

      第三步,確認VMware服務都已經啟動,這個很重要,不然對你后邊的操作很有影響的,如下圖:

          

 

      第四步,在VMware中建立一個CentOS6.5虛擬機,詳情可以參考我的另一篇文章:http://www.cnblogs.com/PurpleDream/p/4263465.html

 

      第五步,經過第四步我們的第一個master虛擬機已經建立好了,下面針對這台虛擬機,進行網絡、主機等配置,詳細步驟如下:

      (1).關掉SELINUX:vi /etc/selinux/config ,設置SELINUX=disabled,保存退出,如下圖:

       

 

      (2).關閉防火牆:/sbin/service iptables stop;chkconfig --level 35 iptables off ;執行完畢后,調用 service iptables status,查看防火牆的狀態,如下圖:

       

      (3).修改IP地址為靜態地址:vi /etc/sysconfig/network-scripts/ifcfg-eth0,將其內容改為如下圖所示,注意HWADDR那一行,你所創建的虛擬機的值很可能與之不同, 保持原值,不要修改它。

       

      (4).修改主機名稱: vi /etc/sysconfig/network,如下圖:

         

      (5).修改hosts映射:vi /etc/hosts,這里我們也將slave1和slave2的主機ip映射關系添加上,方便后邊使用,如下圖:

         

      (6).執行service network restart,重新啟動網絡,這一步是必須的,請注意。

  

      第七步,安裝putty工具,可以在百度上直接搜索,下載解壓到自己的目錄即可,我們會用到目錄中的pscp.exe。

      

      第八步,安裝JDK,詳細步驟如下:

      (1).我從網上下載的是jdk-6u45-linux-i586.bin,放到了我的如下目錄是D:\SettingUp\ITSettingUp\Java\JDK\JDK1.6(linux32),注意此目錄大家可以根據自己的情     況自行選擇,這里我把自己的目錄粘出來,是為了后邊方便說明pscp的上傳。

      (2).打開cmd,定位到putty的解壓目錄,調用如下命令,如果提示輸入密碼,就輸入虛擬機中root帳戶的密碼。對於下邊的命令,我們使用的是pscp命令,兩個參數:第一個參數是本地的jdk路徑,后邊的參數是我們的虛擬機路徑,這里我提前在虛擬機上建立了兩個父子文件夾:/myself_settings/jdk1.6

      pscp D:\SettingUp\ITSettingUp\Java\JDK\JDK1.6(linux32)\jdk-6u45-linux-i586.bin root@192.168.224.100:/myself_settings/jdk1.6

      (3).進入虛擬機jdk的所在目錄/myself_settings/jdk1.6,執行命令: ./jdk-6u45-linux-i586.bin,等待安裝完成。

      (4).修改環境變量:vi ~/.bash_profile,在最后添加,如下圖所示:

       

      (5).輸入命令 source ~/.bash_profile 使配置生效,之后可以執行 java -version 判斷jdk是否已經配置成功

      

      第九步,安裝hadoop,詳細步驟如下:

      (1).下載hadoop,我從網上下載的是hadoop-1.0.1.tar.gz。放在了我的本機:D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0

      (2).打開cmd,定位到putty的解壓目錄,調用如下命令,如果提示輸入密碼,就輸入虛擬機中root帳戶的密碼。

      pscp D:\SettingUp\ITSettingUp\Hadoop\hadoop-1.0\hadoop-1.0.1.tar.gz root@192.168.224.100:/myself_settings/hadoop1.0

      (3).進入虛擬機hadoop所在的目錄/myself_settings/hadoop1.0,調用命令: tar -xzvf hadoop-1.0.1.tar.gz  將文件解壓縮。

      (4).進入(3)中解壓縮后的目錄后,進入到conf文件夾中進行配置,使用命令: vi hadoop-env.sh ,將JAVA_HOME一行的注釋去掉,並改為如下設置:

       

      (5).添加環境變量 vi ~/.bash_profile ,如下圖:

       

      (6).打開conf文件: vi core-site.xml, 進行編輯,如下圖:

       

      (7).打開conf文件: vi hdfs-site.xml, 進行編輯,如下圖:

       

      (8).打開conf文件: vi mapred-site.xml, 進行編輯,如下圖:

       

      (9).打開conf文件: vi masters, 進行編輯,如下圖:

       

      (10).打開conf文件: vi slaves, 進行編輯,如下圖:

       

          

      第十步,經過上述步驟,第一個虛擬機已經配置完畢了,下邊我們要克隆兩個虛擬機出來,作為slave1和slave2,詳細步驟如下:

      (1).在VMware左側的虛擬機列表中選中第一個虛擬機,右鍵選擇“管理”,在“管理”的面板中選擇“克隆”,依次選擇“下一步  ===》  虛擬機中的當前狀態,下一步 ===》 創建完整克隆,下一步 ===》 設置虛擬機名稱和安裝目錄 ===》 點擊完成”,然后分別在這兩個虛擬機繼續做如下操作。

      (2).執行:rm -f /etc/udev/rules.d/70-persistent-net.rules

      (3).執行 reboot 重啟虛擬機

      (4).執行 vi /etc/sysconfig/networking/devices/ifcfg-eth0 將其中的 HWADDR修改為新虛擬機的網卡地址,具體查看虛擬機網卡地址的方式為: 選中虛擬機,郵件選擇“設置”,在彈出的面板中按照下圖所示進行設置,如下圖:

       

      (5).同樣將(4)文件中將IPADDR改為192.168.224.201(對於slave1)或192.168.224.202(對於slave2)。

      (6).修改slave1和slave2的/etc/sysconfig/network文件,將主機名改為slave1或者slave2

      (7).兩台虛擬機執行 service network restart 重啟網絡

    

      第十一步,經過上述步驟,三台虛擬機已經基本配置完畢,但是還有一個重要的步驟,那就是ssh免登陸的配置,這塊我當時出了問題,所以這里再詳細的說明一下:

      備注:由於我第一次搭建的時候這里出了問題,所以此處當時沒有來得及做記錄,現在為了演示,我重新搭建了兩個虛擬機,分別是TestOne和TestTwo,我這里要做的就是從TestOne免登陸到TestTwo。大家以此類推,與我們這個文章中要做的master免登陸 到slave1和slave2是一樣的。

      (1).首先在TestOne虛擬機中,通過 cd ~/.ssh 進入~/.ssh目錄,會看到有一個known_hosts文件,

      (2).在~/.ssh文件夾中,輸入 ssh-keygen -t dsa ,然后會讓你輸入密鑰存儲文件的名稱,我輸入的是id_dsa。前邊這兩部可以參考下邊的圖片,注意圖片中用紅色矩形框圈中的部分:

       

      (3).在~/.ssh文件夾中輸入 cat id_dsa.pub >> authorized_keys,如下圖所示:

       

      (4).在~/.ssh文件夾中,將剛才生成的密鑰拷貝到TestTwo機器上,輸入命令: scp authorized_keys TestTwo:~/.ssh ,過程中需要輸入TestTwo的密碼,詳細參考下圖,注意圖中用紅色矩形框圈中的部分:

        

      (5).經過上述4步,輸入 ssh TestTwo,應該不需要再輸入TestTwo的登錄密碼,就可以從TestOne直接登錄到TestTwo了。

   

      第十二步,至此,虛擬機的配置全部完畢,我們依次執行hadoop namenode -format 、 hadoop datanode -format ,然后在hadoop的安裝目錄下,進入bin目錄,執行如下命令: ./start-all.sh .  然后可以在宿主機中打開瀏覽器,查看 192.168.224.100:50070 的內容,如果正常顯示,就說明啟動正常了。注意,這里也可以分別在master和slaves輸入jps命令驗證是否啟動成功,如下圖:

      

      

 

      經過上邊的十二步,我相信屬於你自己的hadoop集群已經大家成功了,后邊你可以參考我文章開頭列出的文章,在eclipse中添加自己的DFS Location,指向我們的集群。在上述這個過程中,你有可能遇到一些問題,可以參考下邊我列出的文章:

      1.在eclipse中訪問hadoop集群時出現 org.apache.hadoop.security.AccessControlException: Permission denied: user=DrWho, access=WRITE 這個錯誤,參考如下:

         解決方案:http://www.cnblogs.com/acmy/archive/2011/10/28/2227901.html

      2.啟動hadoop時有這樣的提示  Warning: $HADOOP_HOME is deprecated.  這個不會影響使用,如果想解決的話,參考如下:

         解決方案:http://chenzhou123520.iteye.com/blog/1826002

      3. 如果在設置完網絡,調用service network restart時,出現Device eth0 does not seem to be present這個問題,參考如下:

         解決方案:重新打開vi /etc/sysconfig/network-scripts/ifcfg-eth0,將其中的DEVICE的值改為eth1或者別的,然后重啟網絡,應該就不會報錯了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM