Hadoop入門之安裝配置(hadoop-0.20.2)


      Hadoop,簡單理解為HDFS(分布式存儲)+Mapreduce(分布式處理),專為離線和大規模數據分析而設計。

      Hadoop可以把很多linux的廉價PC組成分布式結點,然后編程人員也不需要知道分布式算法之類的,只需根據mapreduce的規則定義好的接口方法,剩下的就交給hadoop,它會自動把相關的計算分布到各個結點上去,然后得到結果。

      比如,有一個1PB的文件,我們要分析其中的有用的數據,首先我們把1PB的數據文件導入到HDFS中,然后編程人員定義好map和reduce函數,也就是把文件的行定義為key,每行內容定義為value,然后進行匹配,匹配成功把結果通過reduce聚合起來,Hadoop就會把這個程序分別到N個結點去並行操作,縮短時間。

     環境軟件准備:VMware10、Cent6.5、JDK1.8.0_65、hadoop-0.20.2

     我們在VMware10上安裝三個Cent6.5OS,三個節點,其中一個為服務器master,另外兩個為客戶機slave(node)

     安裝的過程可以借助網上的相關文檔:http://wenku.baidu.com/link?url=er-Uo_5unEZGIcyg14wzZydaB5cqaUE-yAQddxCC7rS_rBtBBtsFgtVkVETRWZTsmi46_f7d5MBgPVWvnRdoKPMjuwDLLlpcSwAZRBT10m_

     安裝好CentOS后,即可在每台機器上安裝JDK,安裝地址參考:http://jingyan.baidu.com/article/c74d60007b85510f6a595dfa.html

     Java JDK安裝好之后就可以正式開始安裝Hadoop了。

 

    第一步:修改主機名稱hostname,修改后可以重啟CentOS

    [root@wy ~]$   vi /ect/sysconfig/network

    修改其中的HostName=master,修改后可以重啟一下CentOS,以讓其生效。

    其余兩個節點也類似方式,分別將HostName修改為node2、node3

 

    第二步:在三個節點上都配置hosts文件,確定每台CentOS的IP和主機名對應上

    [root@master ~]$   ifconfig

    查看各個節點的IP地址,然后在hosts文件中輸入IP+主機名

    [root@master ~]$  vi /etc/hosts

    在打開的hosts文件中,輸入i,即可編輯文件,輸入以下內容后,按ESC,后輸入:wq后即可保存退出。

    192.168.1.188  master

    192.168.1.189  node2

    192.168.1.190  node3

 

    第三步:創建hadoop群組和hadoop用戶(三個節點都要做如下配置)

    [root@master ~]$ groupadd hadoop  --創建hadoop組

    [root@master ~]$ useradd hadoop -g hadoop --為hadoop組中添加一個用戶,用戶名為hadoop

    [root@master ~]$ passwd hadoop --為hadoop用戶指定密碼

    這樣即可完成組和用戶的創建,在創建完后,即可開始進行下面的操作了。

 

    第四步:配置ssh免密碼連入(三個節點都要做如下配置)

    系統默認是root用戶登錄的,所以首先是要切換到hadoop用戶,以及導航到根目錄。然后利用命令生成公鑰和私鑰,生成位置在.ssh目錄下,生成后導航到.ssh目錄下,利用ls命令即可查看生成出來的文件,最后將公鑰文件中的內容復制成authorized_keys文件,具體涉及命令如下:

    [root@master ~]$ su hadoop

    [hadoop@master ~]$ cd ~

    [hadoop@master ~]$ ssh-keygen -t dsa -P '' -f  ~/.ssh/id_dsa

    [hadoop@master ~]$ cd .ssh/

    [hadoop@master ~]$ cat id_dsa.pub >> authorized_keys

    

    將公鑰復制到authorized_keys文件之后一定要修改權限,否則無法進行下一步操作,就像上圖中紅色框中的內容.

    修改.ssh文件夾以及authorized_keys文件的權限

   [hadoop@master ~]$ chmod 700 ~/.ssh

   [hadoop@master ~]$ chmod 600 ~/.ssh/authorized_keys

   完成以上操作后,可以對各個節點進行自檢測

   [hadoop@master ~]$ ssh localhost --第一次連接需要輸入yes

   [hadoop@master ~]$ ssh localhost --第一次連接可直接連接,即表示配置成功

 

   下面開始配置主節點master可以通過ssh免密碼登錄兩個子節點(node2、node3),在未做以下操作前,如果你在命令行輸入ssh node2,是需要輸入密碼的.

   為了實現這個功能,兩個node節點的公鑰文件中必須要包含主節點的公鑰信息,這樣master就可以順利安全訪問兩個node。

   首先在node3上做如下操作:(node2和master上也需要做以下操作)

   

   這時候,在master中用ssh連接node2就不需要輸入密碼了,即表示配置成功。

 

    第五步:下載安裝hadoop

    將下載的hadoop文件放在/home/hadoop用戶的根目錄下,接着開始解壓

    [hadoop@master ~]$ tar xzvf /root/hadoop-0.20.2.tar.gz

    解壓后文件會是/home/hadoop/hadoop-0.20.2,此時為了以后操作方便,修改了文件的名稱,將hadoop-0.20.0修改為hadoop(這步操作其實完全可以不需要做)。

    解壓后需要在/etc/porfile文件中配置hadoop的環境變量

    [hadoop@master ~]$ vi /etc/profile

    export HADOOP_INSTALL=/home/hadoop/hadoop --第一個hadoop是用戶名,第二個是剛才修改的文件名稱

    export PATH=$PATH:$HADOOP_INSTALL/bin

 

    接着,就可以修改hadoop的配置文件了,分別是core.site.xml、hdfs-site.xml、mapred-site.xml、hadoop-env.sh、masters、slaves文件(在mater主節點中配置)

core.site.xml

<configuration>  
  <property>  
    <!-- 用於設置Hadoop的文件系統,由URI指定 -->
    <name>fs.default.name</name>  
    <value>hdfs://mater:9000</value>  
  </property>  
  <property>
<!-- 配置Hadoop的臨時目錄,默認在/tmp目錄下,但是/tmp上面可能會被系統自動清理掉。-->
<name>hadoop.tmp.dir</name>
<!-- 目錄如果不存在,需要手動創建 -->
    <value>/home/hadoop/hadoop/tmp</value>
    <description>A base for other temperary directory</description>
  </property>
</configuration>  

hdfs-site.xml

<configuration> 
        <property> 
            <name>dfs.name.dir</name> 
            <value>/home/hadoop/hadoop/name</value> 
        </property> 
        <property> 
            <name>dfs.data.dir</name> 
            <value>/home/hadoop/hadoop/data</value> 
        </property> 
        <property> 
            <name>dfs.replication</name> 
            <value>2</value> 
        </property> 
</configuration> 

mapred-site.xml

<configuration>  
  <property>  
    <name>mapred.job.tracker</name>
    <!-- 主節點IP-->
    <value>192.168.1.188:9001</value>  
  </property>  
</configuration>

hadoop-env.sh

<!--在該文件中去掉export JAVA_HOME前面的#,然后根據自己的JDK路徑實際配置-->
export JAVA_HOME=/usr/java/jdk1.8.0_65

masters

master

slaves

node2
node3

 在主節點中完成以上配置后,就可以將hadoop復制到node2、node3節點中,這樣子節點也就安裝好hadoop。

 [hadoop@master ~]$ scp -r ./hadoop node2:~

 [hadoop@master ~]$ scp -r ./hadoop node3:~

 

第六步:關閉防火牆,啟動hadoop

在啟動hadoop之前要先關閉防火牆,否則會失敗。

關閉完防火牆,在啟動hadoop之前,要再做一部格式化主節點master上的namenode(只需要在主節點上操作,子節點中對應只有datanode)

格式化中出現上圖標示的successfully formatted 后即可啟動hadoop。

啟動后,可用JPS命令查看各個節點的各個進程是否啟動成功。(在三個節點都做以下操作)

在node2、node3用JPS輸入后顯示的是:

Jps

DataNode

TaskTracker

這樣,安裝和配置環節終於完成,最后通過web方式驗證hadoop是否安裝成功。

 

在主節點的centos中打開瀏覽器,默認是火狐,在url地址欄分別輸入以下兩個命令

http://192.168.1.188:50030/jobtracker.jsp

http://192.168.1.188:50070

分別出現以下頁面,即表示安裝成功:

 

http://192.168.1.188:50030/jobtracker.jsp

 

http://192.168.1.188:50070


免責聲明!

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



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