1. 程式人生 > >vmware中hadoop叢集安裝指南

vmware中hadoop叢集安裝指南

1、準備Linux環境

1.0先將虛擬機器的網路模式選為NAT

1.1修改主機名
        vi /etc/sysconfig/network
        
        NETWORKING=yes
        HOSTNAME=shizhan1    ###克隆之後其他主機的名字分別是shizhan2 shizhan3 shizhan4....

1.2修改IP
        兩種方式:
        第一種:通過Linux圖形介面進行修改(強烈推薦)
            進入Linux圖形介面 -> 右鍵點選右上方的兩個小電腦 -> 點選Edit connections -> 選中當前網路System eth0 -> 點選edit按              鈕-> 選擇IPv4 -> method選擇為manual -> 點選add按鈕 
            新增IP:192.168.33.101   子網掩碼:255.255.255.0   閘道器:192.168.33.1    DNS:192.168.33.1   -->apply
    
        第二種:修改配置檔案方式(屌絲程式猿專用)
            vim /etc/sysconfig/network-scripts/ifcfg-eth0
            
            DEVICE="eth0"
            BOOTPROTO="static"               ###
            HWADDR="00:0C:29:3C:BF:E7"
            IPV6INIT="yes"
            NM_CONTROLLED="yes"
            ONBOOT="yes"
            TYPE="Ethernet"
            UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
            IPADDR="192.168.33.101"           ###
            NETMASK="255.255.255.0"          ###
            GATEWAY="192.168.33.1"            ###

 1.3修改主機名和IP的對映關係
        vim /etc/hosts
            
        192.168.33.101    shizhan1
        192.168.33.102    shizhan2
        192.168.33.103    shizhan3
        192.168.33.104    shizhan4
        ....
        ###如果有更多主機可以先新增,克隆之後方便一些

1.4關閉防火牆
        #檢視防火牆狀態
        service iptables status
        #關閉防火牆
        service iptables stop
        #檢視防火牆開機啟動狀態
        chkconfig iptables --list
        #關閉防火牆開機啟動
        chkconfig iptables off

 1.5 修改sudo(如何直接用root登入無需這一步)
        su root
        vim /etc/sudoers
        給hadoop使用者新增執行的許可權

        關閉linux伺服器的圖形介面:(看需求)

         vi /etc/inittab 

1.6重啟Linux
        reboot


2.安裝JDK

2.1上傳alt+p 後出現sftp視窗,然後put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz
    

2.2解壓jdk
        #建立資料夾
        mkdir /home/hadoop/app
        #解壓
        tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app

2.3將java新增到環境變數中
        vim /etc/profile
        #在檔案最後新增
        export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
        export PATH=$PATH:$JAVA_HOME/bin
    
        #重新整理配置
        source /etc/profile
        

3.安裝hadoop

3.1、先上傳hadoop的安裝包到伺服器上去/home/hadoop/(可以自己選目錄)
     注意:hadoop2.x的配置檔案$HADOOP_HOME/etc/hadoop

3.2、配置hadoop

   進去hadoop/etc/目錄,偽分散式需要修改5個配置檔案
   第一個:hadoop-env.sh
        vim hadoop-env.sh
        #第27行
        export JAVA_HOME=/usr/java/jdk1.7.0_65(jdk所在路徑)
        
    第二個:core-site.xml

        <!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->

      <configuration>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://shizhan1:9000</value>
        </property>
        <!-- 指定hadoop執行時產生檔案的儲存目錄 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoop/hadoop-2.4.1/tmp</value>
            </property>
        </configuration>
    第三個:hdfs-site.xml   

 <configuration>
        <!-- 指定HDFS副本的數量 -->
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>/home/hadoop/data/name</value>
        </property>

        <property>
            <name>dfs.datanode.data.dir</name>
            <value>/home/hadoop/data/data</value>
        </property>

        <property>
            <name>dfs.replication</name>
            <value>3</value>
        </property>

        <property>
            <name>dfs.secondary.http.address</name>
            <value>shizhan1:50090</value>
        </property>

 </configuration>

    第四個:mapred-site.xml
        mv  mapred-site.xml.template  mapred-site.xml
        vim mapred-site.xml
        <!-- 指定mr執行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        
    第五個:yarn-site.xml
        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>shizhan1</value>
        </property>
        <!-- reducer獲取資料的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
         

3.3、指定datanode所在位置
         vi  slaves
         新增
         shizhan1
         shizhan2
         shizhan3


3.4將hadoop新增到環境變數
    vim /etc/proflie
        export JAVA_HOME=/usr/java/jdk1.7.0_65
        export HADOOP_HOME=/itcast/hadoop-2.4.1
        export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

    source /etc/profile
    

4、將虛擬機器進行克隆操作

4.1、克隆之後更改vi /etc/sysconfig/network,對應的主機名
4.2、解決不能上網的問題

         rm -rf /etc/udev/rules.d/70-persistent-net.rules
         先重啟reboot看能不能上網,不能再刪除UUID HWADDR再重啟
       (vim /etc/sysconfig/network-scripts/ifcfg-eth0  刪除裡面的UUID  HWADDR)

5、配置ssh免登陸

    #生成ssh免登陸金鑰
    #進入到我的home目錄
    cd ~/.ssh

    ssh-keygen -t rsa (四個回車)
    執行完這個命令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
    將公鑰拷貝到要免密登陸的目標機器上
    ssh-copy-id xxxxxx
    ---------------------------
    ssh免登陸:
        生成key:
        ssh-keygen
        複製從A複製到B上:
        ssh-copy-id B
        驗證:
        ssh localhost/exit,ps -e|grep ssh
        ssh A  #在B中執行

6、格式化namenode(是對namenode進行初始化)

       hdfs namenode -format (hadoop namenode -format)       

        如果出現permission denied,是因為沒有檔案執行全選
        chmod -A 777 hadoop目錄

        如果又新添加了機器,還要重新格式化

7、啟動hadoop

        先啟動HDFS
        sbin/start-dfs.sh
        
        再啟動YARN
        sbin/start-yarn.sh

    (由於配置了環境變數所以直接start-dfs.sh也可以)
        停止叢集:stop-dfs.sh  stop-yarn.sh

全部一次性啟動方式:start-all.sh  stop-all.sh

8、驗證是否啟動成功

HDFS叢集:
負責海量資料的儲存,叢集中的角色主要有 NameNode / DataNode
YARN叢集:
負責海量資料運算時的資源排程,叢集中的角色主要有 ResourceManager /NodeManager

使用jps命令驗證
       NameNode
       SecondaryNameNode
       ResourceManager

       NodeManager
       DataNode
    
http://192.168.33.101:50070 (HDFS管理介面)
http://192.168.33.101:8088 (MR管理介面)