Hadoop分散式叢集搭建_1

BirdieGarden發表於2018-05-17

Hadoop是一個開源的分散式系統框架

一.叢集準備

    1. 三臺虛擬機器,作業系統Centos7,三臺主機名分別為k1,k2,k3,NAT模式

    2.節點分佈

        k1: NameNode DataNode ResourceManager NodeManager
        k2: SecondNameNode DataNode NodeManager
        k3 : DataNode NodeManager

    3.安裝包準備

        jdk-8uxx-linux-x64.rpm
        hadoop-2.7.1.tar.gz

二.Linux準備

    1.關閉防火牆

        systemctl status firewalld  //檢視防火牆狀態
        systemctl stop firewalld    //關閉防火牆
        systemctl disable firewalld   //防火牆開機不啟動

    2.修改主機名

        hostnamectl set-hostname 主機名
        注:如果克隆的虛擬機器,那麼需要修改主機名

    3.IP設定

        編輯:vi /etc/sysconfig/network-scripts/ifcfg-ens33    

檔案中修改 :
BOOTPROTO=none
ONBOOT=yes [開機啟動網路卡]
檔案中新增 : 
IPADDR=xxx  [IP地址]
NETMASK=xxx  [子網掩碼]
GATEWAY=xxx  [閘道器] 
DNS1=xxx  

        重啟網路卡 : systemctl restart network
        注 : 克隆的虛擬機器需要修改IP地址,刪除UUID

    4.新增hosts檔案

        編輯:vi /etc/host

檔案中新增:
IP地址 主機名
IP地址 主機名
IP地址 主機名 

    5.安裝JDK

        安裝包 : jdk-8uxx-linux-x64.rpm
        安裝     : rpm -ivh jdk-8uxx-linux-x64.rpm
        配置環境變數 : vi /etc/profile

           檔案中新增 : 
                JAVA_HOME=/usr/java/jdk
                PATH=$PATH:$JAVA_HOME/bin:
                CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:

       

 

 

  環境變數生效 : source /etc/profile
        檢視:java -version

    6.SSH免密 

        1. ssh-keygen
            之後一直回車就可以 
        2.ssh-copy-id 主機名 
            三臺機子都需要進行免密
        3.ssh 主機名
             測試免密是否成功

三.HADOOP環境搭建

    1.解壓縮

            安裝包 : hadoop-2.7.1.tar.gz
            解壓縮 : tar -zxvf hadoop-2.7.1.tar.gz -C /opt/apps    

    2.修改環境變數

            編輯 :vi /etc/profile

檔案中新增 : 
  export HADOOP_HOME=/opt/apps/hadoop.2.7.1/
  export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

    3.環境變數生效

            source/etc/profile

四.HADOOP配置檔案

    1.進入hadoop配置檔案目錄

            cd /opt/apps/hadoop.2.7.1/etc/hadoop

    2.修改配置檔案 : hadoop-env.sh

vi hadoop-env.sh     
    修改檔案中JAVA_HOME,改為自己JDK的路徑

    3.配置檔案 :core-site.xml

        vi core-site.xml  新增如下內容:

            <property>
            <name>fs.defaultFS</name>
            <value>hdfs://主機名:8020</value>  //NameNode節點主機名
            </property>
            <property>
            <name>io.file.buffer.size</name>
            <value>4096<value>
            </property>
            <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoopdata/bigdata/tmp</value>
            </property>

    4.配置檔案 : hdfs-site.xml

        vi hdfs-site.xml 新增如下內容:

            <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:///home/hadoopdata/dfs/name</value>
            </property>
            <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:///home/hadoopdata/dfs/data<>
            </property>
            <property>
            <name>dfs.http.address</name>
            <value>NameNode節點主機名:50070</value>
            </property>
            <property>
            <name>dfs.secondary.http.address</name>
            <value>SecondNameNode節點主機名:50090</value>
            </property>
            <property>
            <name>dfs.replication</name>
            <value>3</value>
            </property>
            <property>
            <name>dfs.webhdfs.enabled</name>
            <value>true</value>
            </property>
            <property>
            <name>dfs.permissions</name>
            <value>false</value>      
            </property>

    5.配置檔案 : salves

        vi salves 新增以下內容(三臺機器的主機名) : 

            hostname1
            hostname2
            hostname3

    6.配置檔案 : mapred-site.xml

        mv mapred-site.xml.template mapred-site.xml  (進行重新命名)
        vi mapred-site.xml  新增以下內容 : 

            <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
            <final>true</final>  
            </property>
            <property> 
            <name>mapreduce.jobhistory.address</name>
            <value>歷史服務:10020</value>
            </property>
            <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>歷史服務節點主機名:19888</value>
            </property>

    7.配置檔案 : yarn-site.xml

        vi yarn-site.xml 新增如下內容 : 

            <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>ResourceManager節點主機名</value>
            </property>
            <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
            </property>
            <property>
            <name>yarn.resourcemanager.address</name>
            <value>ResourceManager節點主機名:8032</value>
            </property>
            <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>ResourceManager節點主機名:8030</value>
            </property>
            <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>      
            <value>ResourceManager節點主機名:8031</value>
            </property>
            <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>ResourceManager節點主機名:8033</value>
            </property>
            <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>ResourceManager節點主機名:8088</value>
            </property>
            <property>
            <name>yarn.client.failover-proxy-provider</name>   
            <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>              </property>
            <property>
            <name>yarn.web-proxy.address</name>
            <value>ResourceManager節點主機名:9989</value>
            </property>

五.Hadoop啟動【Hadoop分發到別的機器,三臺機器都要有Hadoop】

    1.格式化NameNode

        hdfs namenode -format
        注 : 如出現 [name has been successfully formated] 則格式化成功

    2.啟動程式

        start-dfs.sh     
        start-yarn.sh

    3.檢視節點 ——  jps

    4.建立wordcount.txt 驗證Yarn

        yarn jar /root/app/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /hello.txt /out/1

六.謝謝

    本人還處於小白階段,可能寫的地方可能讓人晦澀,還請多見諒,我還會繼續努力!

相關文章