hadoop偽分布搭建


    本文發表於本人博客

    先來看看hadoop的大體架構是如何,主要分為HDFS以及MapRedure。

    • HDFS的架構

      • 主從結構

        • 主節點,只有一個:namenode

        • 從節點,有很多個:datanodes   

        • namenode負責:
                  接收用戶的請求
                  維護文件系統的目錄結構
                  管理文件與block之間的關系,block於datanode之間的關系  

        • datanodes負責:
                  存儲文件
                  文件分成多個block存儲在磁盤上
                  保證數據安全,建立多個副本 

    • MapReduce的架構

      • 主從結構

        • 主節點,只有一個:JobTracker

        • 從節點,有很多個:TaskTrackers

        • JobTracker負責:
                  接收客戶提交的計算任務
                  把計算任務分給TaskTrackers執行
                  監控TaskTrackers的執行情況

        • TaskTrackers負責:
                  執行JobTracker分配的任務

Hadoop特點擴容能力:處理數據級別容易變更;成本低:開源,普通服務器;高效率:分發任並行務;可靠性,多搞副本。Hadoop這些特點總結來源於分布式這個條件。
目前來看Hadoop部署方式大概有:本地模式、集群模式、偽分布模式。下面我就用我自己的本本搭建一個偽分布。當前系統系統:CentOS-6.5-64bit,使用軟件:jdk-6u24,hadoop-1.1.2hadoop-1.1.2.tar.gz

 

  • 設置靜態IP地址;
        使用ifconfig查看當前網絡連接,在windows宿主機上查看本地連接,經過查看時192.168.1網段的,那我們就把虛擬機里面設置是 192.168.2網段,剛開始的時候虛擬機設置的是host-only模式。變價/etc/sysconfig/network-scripts /ifcfg-eth0文件,增加靜態iP地址、網管、子網,並設置其靜態,設置完成之后保存並退出service network restart重啟網絡服務,這是可以檢查宿主機跟虛擬機之間的網絡通信是否正常。現在設置了靜態ip那么我們也方便是用ssh工具直接登錄。

     

        vi /etc/sysconfig/network-scripts/ifcfg-eth0
        service network restart

     

IP03.jpg

  • 關閉防火牆
        

        service iptables stop
        service iptables status
    

      

  • 關閉自動運行

        

    su root
    chkconfig --list  | grep iptables
    chkconfig iptables off

     

  • 設置主機名

        hostname                        //查看當前主機名稱
        hostname hadoop_master          //設置當前會話主機名稱 
        vi /etc/sysconfig/network       //修改配置文件     HOSTNAME=hadoop_master
        reboot                          //重啟   

                   

  • ssh免密碼登錄

    ssh-keygen -t rsa                   //在root用戶使用ssh工具生成秘鑰(也可以使用普通用戶)
    cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys       //復制一份秘鑰
    ssh hadoop_master

 

        

  • IP地址綁定主機名

    vi /etc/hosts //
    增加:127.0.0.1  hadoop_master   
    service network restart

  

  • 安裝JDK

    通過WinScp軟件用root用戶上傳jdk-6u24-linux-i586.bin文件/usr/local/soft。上傳之后先對這個目錄 soft更改其權限為777,然后在SecureCRT中就可以用普通用戶進行解壓此文件./jdk-6u24-linux-i586.bin,再mv重 命名文件夾並移至/usr/local下.設置jdk的環境變量,vi /etc/profile增加環境變量,文件保存后在執行source /etc/profile

    export JAVA_HOME=/usr/local/jdk
    export PATH=.:$PATH:$JAVA_HOME/bin

  

    檢查是否成功:

    IP04.jpg

1.8安裝hadoop

    cd /usr/local/soft
    tar -xzvf hadoop-1.1.2.tar.gz
    mv hadoop-1.1.2 ../hadoop
    vi /etc/profile

  

    增加export HADOOP_HOME=/usr/local/hadoop

    修改export PATH=.:$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin    

    source /etc/profile    
    cd hadoop/conf
    vi hadoop-env.sh

 

    修改export JAVA_HOME=/usr/local/jdk/

 

    vi core-site.xml
 
        
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop_master:9000</value>
        <description>這里要注意是自己的主機名稱</description>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
</configuration>
 
        
    vi hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions</name>
        <value>false</value>
    </property>
</configuration>

 

    vi mapred-site.xml
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>hadoop_master:9001</value>
        <description>這里要注意是自己的主機名稱</description>
    </property>
</configuration>

 

    格式化hdfs,並啟動

    hadoop namenode -format
    cd ../bin/
    ./start-all.sh
    jps

    但是這樣是啟動不成功的,說什么端口問題(java.lang.IllegalArgumentException: Does not contain a valid host:port authority),經過查問說是hadoop下主機名不能有下划線,自己試試修改下看看結果

IP010.jpg

看到這輸出6個就說明安裝成功了!

 


免責聲明!

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



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