1 概述

本文章介紹大資料平臺Hadoop的分散式環境搭建、以下為Hadoop節點的部署圖,將NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分別部署一個DataNode節點

NN=NameNode(名稱節點)

SND=SecondaryNameNode(NameNode的輔助節點)

DN=DataNode(資料節點)

2 前期準備

(1)準備五臺伺服器

如:master1、master2、slave1、slave2、slave3

(2)關閉所有伺服器的防火牆

$ systemctl stop firewalld
$ systemctl disable firewalld

(3)分別修改各伺服器的/etc/hosts檔案,內容如下:

192.168.56.132 master1
192.168.56.133 master2
192.168.56.134 slave1
192.168.56.135 slave2
192.168.56.136 slave3

注:對應修改個伺服器的/etc/hostname檔案,分別為 master1、master2、slave1、slave2、slave3

(4)分別在各臺伺服器建立一個普通使用者與組

$ groupadd hadoop #增加新使用者組
$ useradd hadoop -m -g hadoop #增加新使用者
$ passwd hadoop #修改hadoop使用者的密碼

切換至hadoop使用者:su hadoop

(5)各伺服器間的免密碼登入配置,分別在各自服務中執行一次

$ ssh-keygen -t rsa #一直按回車,會生成公私鑰
$ ssh-copy-id [email protected] #拷貝公鑰到master1伺服器
$ ssh-copy-id [email protected] #拷貝公鑰到master2伺服器
$ ssh-copy-id [email protected]1 #拷貝公鑰到slave1伺服器
$ ssh-copy-id [email protected] #拷貝公鑰到slave2伺服器
$ ssh-copy-id [email protected] #拷貝公鑰到slave3伺服器

注:以上操作需要登入到hadoop使用者操作

(6)下載hadoop包,hadoop-2.7.5.tar.gz

官網地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.5/

3 開始安裝部署

(1)建立hadoop安裝目錄

$ mkdir -p /home/hadoop/app/hadoop/{tmp,hdfs/{data,name}}

(2)將安裝包解壓至/home/hadoop/app/hadoop下

$tar zxf tar -zxf hadoop-2.7.5.tar.gz -C /home/hadoop/app/hadoop

(3)配置hadoop的環境變數,修改/etc/profile

JAVA_HOME=/usr/java/jdk1.8.0_131
JRE_HOME=/usr/java/jdk1.8.0_131/jre
HADOOP_HOME=/home/hadoop/app/hadoop/hadoop-2.7.5
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH

(4)重新整理環境變數

$source /etc/profile

4 配置Hadoop

(1)配置core-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/core-site.xml
<configuration>
    <property>
	    <!-- 配置HDFS的NameNode所在節點伺服器 -->
        <name>fs.defaultFS</name>
        <value>hdfs://master1:9000</value>
    </property>

    <property>
	    <!-- 配置Hadoop的臨時目錄 -->
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/app/hadoop/tmp</value>
    </property>
</configuration>

預設配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-common/core-default.xml

(2)配置hdfs-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/hdfs-site.xml
<configuration>
    <property>
	    <!-- 配置HDFS的DataNode的備份數量 -->
        <name>dfs.replication</name>
        <value>3</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/app/hadoop/hdfs/name</value>
    </property>

    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hadoop/app/hadoop/hdfs/data</value>
    </property>
   
    <property>
        <!-- 配置HDFS的許可權控制 -->
	    <name>dfs.permissions.enabled</name>
	    <value>false</value>
    </property>

    <property>
        <!-- 配置SecondaryNameNode的節點地址 -->
        <name>dfs.namenode.secondary.http-address</name>
        <value>master2:50090</value>
    </property>
</configuration>

預設配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml

(3)配置mapred-site.xml

$ cp /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml.template /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml
$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-site.xml
<configuration>
    <property>
	    <!-- 配置MR執行的環境 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

預設配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

(4)配置yarn-site.xml

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <property>
	    <!-- 配置ResourceManager的服務節點 -->
        <name>yarn.resourcemanager.hostname</name>
        <value>master1</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master1:8032</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master1:8088</value>
    </property>
</configuration>

預設配置地址:http://hadoop.apache.org/docs/r2.7.5/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

(5)配置slaves

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/slaves
slave1
slave2
slave3

slaves檔案中配置的是DataNode的所在節點服務

(6)配置hadoop-env

修改hadoop-env.sh檔案的JAVA_HOME環境變數,操作如下:

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131

(7)配置yarn-env

修改yarn-env.sh檔案的JAVA_HOME環境變數,操作如下:

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131

(8)配置mapred-env

修改mapred-env.sh檔案的JAVA_HOME環境變數,操作如下:

$ vi /home/hadoop/app/hadoop/hadoop-2.7.5/etc/hadoop/mapred-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131

(9)將master1中配置好的hadoop分別遠端拷貝至maser2、slave1 、slave2、slave3伺服器中

$ scp -r /home/hadoop/app/hadoop [email protected]:/home/hadoop/app/
$ scp -r /home/hadoop/app/hadoop [email protected]:/home/hadoop/app/
$ scp -r /home/hadoop/app/hadoop [email protected]:/home/hadoop/app/
$ scp -r /home/hadoop/app/hadoop [email protected]:/home/hadoop/app/

5 啟動測試

(1)在master1節點中初始化Hadoop叢集

$ hadoop namenode -format

(2)啟動Hadoop叢集

$ start-dfs.sh
$ start-yarn.sh

(3)驗證叢集是否成功

瀏覽器中訪問50070的埠,如下證明叢集部署成功

下面小編給大家介紹一下程式設計師的學習圈
python學習qq群250933691
大資料學習qq群458345782
java學習qq群625241190
群裡會給大家分享很棒的免費學習教程