Hadoop環境搭建(centos)

Hadoop環境搭建(centos)

本平台密碼83953588abc

配置Java環境

  • 下載JDK(本實驗從/cgsrc 文件中複製到指定目錄)
    mkdir /usr/local/java
    cp /cgsrc/jdk-8u171-linux-x64.tar.gz /usr/local/java/

JDK至少1.8以上!!!

  • 解壓JDK安裝包
    cd /usr/local/java
    tar -zxvf jdk-8u171-linux-x64.tar.gz
    rm -f jdk-8u171-linux-x64.tar.gz
  • 添加環境變數

配置JAVA_HOME環境變數。修改文件vim ~/.bashrc

    export JAVA_HOME=/usr/local/java/jdk1.8.0_171
    export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar
    export PATH=$PATH:${JAVA_HOME}/bin

如果PATH環境變數修改錯誤,則可能出現Linux常用命令無法找到的現象!!!

使修改環境生效,source ~/.bashrc.

檢查是否設置正確.

    echo $JAVA_HOME   #檢查變數值
    java -version     #查看java版本

配置分散式模式

選定一台機器作為名稱節點(Master),另外兩條作為數據節點(Slave)。

配置hosts文件

在Master上修改/etc/hosts文件:

使用命令vim /etc/hosts

    ip1  master
    ip2  slave1
    ip3  slave2

測試節點之間是否已經聯通:

    ping master -c 3
    ping slave1 -c 3
    ping slave2 -c 3

配置SSH無密碼登錄

  • 必須要讓master節點可以SSH無密碼登錄到各個節點上。首先,生成master節點的公匙,如果之前已經生成過公匙,必須刪除原來的公匙,重新生成一次,命令如下:
    cd ~/.ssh  #如果沒有該目錄,先執行一次ssh localhost
    rm -f ./id_rsa*  #刪除之前生成的公匙
    ssh-keygen -t rsa  #執行該命令後,遇到提示資訊,均按Enter即可。
  • 為了讓master節點能無密碼SSH登錄到本機,需要在mater節點上執行如下 cat ./id_rsa.pub >> ./authorized_keys.

    檢測是否成功,ssh master ,遇到提示資訊,yes即可, exit退出。

  • 把master上的公匙傳輸到slave節點:

    scp ~/.ssh/id_rsa.pub root@slave1:/root
    scp ~/.ssh/id_rsa.pub root@slave1:/root

其中本次實驗平台,要把slave1、slave2換成相應的IP。

  • 傳輸完成後在slave1和slave2節點上將SSH公匙加入授權:
    mkdir ~/.ssh
    cat ~/id_rsa.pub >> ~/.ssh/authoried_keys
    rm -f ~/id_rsa.pub

配置環境變數

  • 將Hadoop安裝包複製到/usr/local目錄上:

    cp /cgsrc/hadoop-2.7.1.tar.gz /usr/local/

  • 解壓

    cd /usr/local
    tar -zxvf hadoop-2.7.1.tar.gz
    rm -f hadoop-2.7.1.tar.gz
    mv hadoop-2.7.1/ hadoop  #將hadoop-2.7.1重命名為hadoop
  • 配置環境變數
    • 打開~/.bashrc文件

      vim ~/.bashrc

    • 輸入以下內容

      export PATH=$PATH:/usr/1ocal/hadoop/bin:/usr/1ocal/hadoop/sbin

    • 文件生效

      source ~/.bashrc

    • 查看hadoop版本

      hadoop version

配置集群環境

配置集群環境時,需要修改/usr/local/hadoop/etc/hadoop目錄下的配置文件,這裡僅設置正常啟動必須的設置項,包括slaves、core-site.xml、hdfs
-site.xml、mapred-site.xml、yarn-site.xml共五個文件。

  • 修改文件slaves

    需要把所有數據節點的主機名寫入該文件,每行一個,默認為localhost
    (即把本機作為數據節點)。在進行集群配置時,可以保留localhost,讓master節點同時充當名稱節點和數據節點,也可以刪除localhost這行,讓master節點僅作為名稱節點使用。
    本節讓master節點僅作為名稱節點使用,因此將slaves文件中原來的內容刪除,添加如下內容:

    slave1

    slave2

  • 修改文件core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/1ocal/hadoop/tmp</value>
    </property>
</configuration> 
  • 修改文件hdfs-site.xml

    對於Hadoop的分散式文件系統HDFS而言,一般是採用元餘存儲,冗餘因子一般是3,也就是說一份數據保存3份副本。而我們只有兩個數據節點,即數據只能保存兩份,所以,dfs.replication設置為2,文件具體內容如下:

<configuration>
    <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/1ocal/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/1ocal/hadoop/tmp/dfs/date</value>
    </property>
</configuration>
  • 修改文件mapred-site.xml

    /usr/local/hadoop/etc/hadoop 目錄下有一個mapred-site.xml.template,需要複製該文件為mapred-site.xml:

    cp mapred-site.xml.template mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>
  • 修改文件yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

配置slave節點

將master節點上的/usr/local/hadoop複製到slave節點上。

    cd /usr/local 
    rm -rf ./hadoop/tmp #刪除臨時文件
    rm -rf ./hadoop/1ogs/* #刪除日誌文件
    tar -zcf ~/hadoop.master.tar.gz. /hadoop #先壓縮再複製
    cd ~
    scp ./hadoop.master.tar.gz  root@slave1: /root
    scp ./hadoop.master.tar.gz  root@slave2: /root

在slave1和slave2上執行如下命令:

    rm -rf usr/local/hadoop #如果有舊文件則先刪除
    tar -zxf ~/hadoop.master.tar.gz -C /usr/1ocal
    rm -f ~/hadoop.master.tar.gz

啟動Hadoop集群

  • 首次啟動Hadoop集群時,需要先在master節點執行名稱節點的格式化:
    hdfs namenode-format
  • 現在可以啟動Hadoop了,啟動需要在master節點上進行,執行如下命令:
    start-dfs.sh 
    start-yarn.sh 
    mr-jobhistory-daemon.sh start historyserver
Tags: