Hadoop環境搭建(centos)

Hadoop環境搭建(centos)

本平臺密碼83953588abcjava

配置Java環境

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

JDK至少1.8以上!!!node

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

配置JAVA_HOME環境變量。修改文件vim ~/.bashrclinux

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.

檢查是否設置正確.web

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

配置分佈式模式

選定一臺機器做爲名稱節點(Master),另外兩條做爲數據節點(Slave)。vim

配置hosts文件

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

使用命令vim /etc/hostscentos

ip1  master
    ip2  slave1
    ip3  slave2

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

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退出。
    app

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

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

其中本次實驗平臺,要把slave一、slave2換成相應的IP。webapp

  • 傳輸完成後在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
相關文章
相關標籤/搜索