1.事前了解
1.1 Hadoop
百度百科:https://baike.baidu.com/item/Hadoop/3526507?fr=aladdin
Hadoop是一個由Apache基金會所開發的分布式系統基礎架構。。用戶可以在不了解分布式底層細節的情況下,開發分布式程序。充分利用集群的威力進行高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),其中一個組件是HDFS。
-
Hadoop的框架最核心的設計: HDFS和MapReduce。HDFS為海量的數據提供了存儲,而MapReduce則為海量的數據提供了計算
-
Hadoop核心架構:
- 元素:
- Hadoop 由許多元素構成。其最底部是 Hadoop Distributed File System(HDFS),它存儲 Hadoop 集群中所有存儲節點上的文件。HDFS的上一層是MapReduce 引擎,該引擎由 JobTrackers 和 TaskTrackers 組成。
- HDFS:
- MapReduce:
- MapReduce是一種編程模型,用於大規模數據集(大於1TB)的並行運算。概念"Map(映射)"和"Reduce(歸約)"。
- 基本所需節點:
- master:至少需要一個,為了防止此節點發生故障也可以弄個備份節點。此節點作為主機(主節點),主要配置NameNode和JobTracker,是整個集群的唯一的全局管理者,功能包括:作業管理、狀態監控和任務調度等。
- Salve:至少需要三個,此節點作為從機,主要配置DataNode 和TaskTracker,負責分布式數據存儲以及任務的執行和任務狀態的回報。
- 元素:
-
功能實現: 在Hadoop部署中,有三種服務器角色,他們分別是客戶端、Masters節點以及Slave 節點。Master 節點,Masters 節點又稱主節點,主節點負責監控兩個核心功能:大數據存儲(HDFS)以及數據並行計算(Map Reduce)。其中,Name Node 負責監控以及協調數據存儲(HDFS)的工作,JobTracker 則負責監督以及協調 Map Reduce 的並行計算。 而Slave 節點則負責具體的工作以及數據存儲。每個 Slave 運行一個 Data Node 和一個 Task Tracker 守護進程。這兩個守護進程負責與 Master 節點通信。Task Tracker 守護進程與 Job Tracker 相互作用,而 Data Node 守護進程則與 Name Node 相互作用。
1.2.關於CentOS
Minimal ISO
Mini版本,只有必要的軟件,自帶的軟件最少(沒有圖形化界面)
DVD ISO
標准版本安裝(服務器安裝推薦使用,包含一些基本的軟件和圖形化界面)
Everything ISO
對完整版安裝盤的軟件進行補充,集成所有軟件(圖形化界面版)
很大,沒下過,好像有十幾個G,似乎在官方的安裝指南看到的。
2.准備
- 以下搭建所用到的軟件和插件的版本不一定和我一樣:
軟件/插件 | 下載地址 | 作用 |
---|---|---|
VMware Workstation Pro16 | http://www.opdown.com/soft/262811.html | 創建虛擬機的工具 |
CentOS-7-x86_64-Minimal-2009 | 1.https://www.centos.org/download/ 2.https://developer.aliyun.com/mirror/ | ISO鏡像,創建虛擬機是要用到 |
xshell7 | 1.http://www.j9p.com/down/531725.html 2.https://www.xshellcn.com/xiazai.html | 使虛擬機操作更簡單化 |
jdk-8u171-linux-x64.tar | 1.https://repo.huaweicloud.com/java/jdk/ 2.https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/ | jdk,虛擬機連接Xshell后要用到 |
hadoop-2.7.7.tar | 1.https://archive.apache.org/dist/hadoop/common/ 2.http://mirror.bit.edu.cn/apache/hadoop/common/ | Hadoop,后面要用到 |

- 准備1台master主機與3台Slave從機(由於某種原因本人就先安裝一台master與一台Salve,但是如果想再安裝Salve其步驟一樣)。
- 虛擬機的安裝我就不演示了,具體安裝步驟可以看這篇博客:https://www.cnblogs.com/yfb918/p/10497328.html ,或者可以百度。
- Xshell安裝可以看這位博主:https://blog.csdn.net/weixin_40928253/article/details/80621724 ,也可以百度。
我的機器環境: (注意: 由於一些原因下面類容中由於自己的一些問題導致IP發生了變化,剛開始為 192.168.30.~,后面才變成了 192.168.6.~,)
機器名 | IP |
---|---|
master.hadoop | 192.168.6.10 |
slave1.hadoop | 192.168.6.11 |
3.相關命令
ping www.baidu.com //用於查看網絡是否連接
service network restaet //重啟網絡
su //切換root用戶
vi /etc/sysconfig/network-scripts/ifcfg-ens33 //配置靜態網絡
systemctl stop firewalld.service //停止防火牆
systemctl disable firewalld.service //禁止防火牆開機啟動
systemctl status firewalld.service //查看防火牆,下面顯示(dead)為普通顏色則關閉,綠色則啟動狀態。
firewall-cmd --state //查看防火牆狀態(關閉顯示:not running,開啟后顯示:running)
service iptables status //查看當前系統是否安裝防火牆
yum install -y iptables //安裝防火牆
yum install iptables-services //安裝防火牆服務
iptables -L -n //查看防火牆現有規則
systemctl enable iptables //設置防火牆開機自啟
service iptables save //保存設置
service iptables start //啟動防火牆,之后須重啟虛擬機生效
service iptables restart //重啟防火牆,之后須重啟虛擬機生效
reboot //重啟虛擬機
ip addr //查看當前機器IP
ifconfig //查看當前機器IP
hostnamectl set-hostname 本機名稱 //修改本機名稱
hostname //查看本機名稱
ls //查看目錄
cd //返回主master目錄
cd .. //返回上級目錄
yum install lrzsz -y //安裝rz工具
yum install rsync //安裝拷貝文件工具
scp /etc/opt/package/*.gz root@192.168.6.11:/etc/opt/package //文件拷貝復制
ssh-keygen –t rsa –P '' //生成⽆密碼密鑰對
ssh-keygen -b 1024 -t rsa //生成⽆密碼密鑰對
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys //追加公鑰
ssh-copy-id //追加公鑰
passwd root //改密碼
rm -fr package //刪除目錄
tail- //查看日志
4.開始搭建
- 期間可能遇到的一些問題解決辦法可以參考這篇博客:https://blog.csdn.net/weixin_46311020/article/details/113180767?spm=1001.2014.3001.5502 ,這里面類容中可能有你遇到的問題及解決辦法。
- 以下是所用軟件及虛擬機安裝完成后Hadoop集群具體搭建步驟。
注意: 在進行相關配置時 按 A 鍵進入編輯模式才能向文件里面添加內容,配置完成后先按 Esc 鍵退出編輯模式后再次輸入 :wq(保存並退出) 后回車退出,這個內容我下面不會再提及。
4.1網絡配置(下面內容兩台機子步驟一樣)
(1)靜態網絡配置
配置需要root用戶,如果不是就輸入 su 會要你輸入密碼后進入root用戶:
[root@192 ~]#su //切換root用戶
接下來按以下命令進行網絡配置:
[root@192 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
打開虛擬機上的虛擬網絡編輯器,先點擊更改設置,然后點擊VMnet8,向文件配置里面按VMnet8里面的內容填寫ip地址(注意:ip地址只設置最后位數,自己隨便設置數,比如我設置的為10),子網掩碼(不變)默認網關(不變),dns(注意:可設置一個,也可設置兩個,你可以設置為自己本機電腦的dns,也可設置網上的dns),

配置內容如下:
IPADDR="" //IP地址
NETMASK="" //子網掩碼
GATEWAY="" //默認網關
DNS1="" //DNS
DNS2="" //DNS
結果:(注意: 配置完成后先別急着保存,要先虛擬網絡編輯器中窗口都 確定 后再文件保存退出,下面圖片中的網關中的31 應該是30)

之后重啟網絡,ping 百度,看能通嗎,通了則成功,最好再ping下自己設置的IP
service network restaet //重啟啟網絡
ping www.baidu.com /看能否ping通

(2)關閉防火牆
systemctl stop firewalld.service //停止防火牆
systemctl disable firewalld.service //禁止防火牆開機啟動
firewall-cmd --state //查看防火牆狀態(關閉顯示:not running,開啟后顯示:running)

(3)修改當前機器名
在以下命令后面添加想要改的名稱,我改的名為 :master.Hadoop
hostnamectl set-hostname master.hadoop //修改主機名
reboot //重啟虛擬機查看成功沒
hostname //查看本機名稱

(4)編輯hosts文件
hostname -i //查看你本機的IP,並記住
vi /etc/hosts //進入hosts文件
需要添加的內容:(本機IP 本機名稱),(從機IP 從機名稱 )
192.168.6.10 master.hadoop
192.168.6.11 slave1.hadoop

檢驗: 互相ping一下看是否成功
master機:ping slave1.hadoop
slave1機:ping master.hadoop

4.2.必要安裝(slave步驟一樣)
- 以下的安裝后面需要用到
SSH服務:用於免密登錄及后面Xshell連接虛擬機可能需要用到,及其它用處
[root@master ~]# rpm -qa | grep ssh //查看有沒有安裝SSH服務,如果沒有就執行下面命令
[root@master ~]# yum install openssh-server -y //安裝SSH服務
[root@master ~]# yum install openssh-clients -y //安裝SSH客戶
[root@master ~]# rpm –qa | grep openssh 查看是否安裝成功
Service服務:用於啟動SSH服務,及其它用處
[root@master ~]# service sshd restart //安裝srevice
[root@master ~]# service sshd restart //啟動SSH
[root@master ~]# yum install net-tools //網絡配置工具
vim編輯器:使編輯文件更方便
[root@master ~]# yum install vim -y
安裝遠程數據同步工具:可用於拷貝等
[root@master ~]# yum install rsync //安裝
[root@master ~]# rpm –qa | grep rsync //查看
安裝rz工具:用於后面的文件傳輸
[root@master ~]# yum install lrzsz -y
安裝passwd工具,用於更該密碼
yum install passwd
4.3Xshell操作虛擬機
-
Xshell連接虛擬機
步驟我這就不概述了,自己可以百度,也可以參考這篇博文:https://blog.csdn.net/weixin_40928253/article/details/80621724
- 連接時遇到問題可參考這篇博文,里面可能有和你一樣的問題的解決方法可以參考:https://blog.csdn.net/weixin_46311020/article/details/113180767
-
特別注意:接下來的操作中使用的命令,記得注意看命令前的這部分 [root@master ~]# 通過它可以看見我在哪個目錄下使用的該命令。
(1)文件傳輸(slave步驟一樣)
這里需要將剛我們開始下載的jdk與Hadoop包 傳入虛擬機,為了文件不混亂及今后方便查找,我們需要自己在系統中新建存放相應文件的目錄,可以自己選則,一般選在opt 或home目錄下,我選擇opt目錄下創建:
注意:我這次在opt目錄下創建了個 package 目錄用於存放 jdk 與 hadoop,由於后面以后需要解壓安裝兩個包,所以我順便在 opt 目錄下再建了個 module 目錄備用,用於作為以后兩個包解壓的目錄。
傳輸文件需要輸入 rz 命令: 輸入命令后如果顯示未找到命令,則是因為沒有安裝該工具,則需要安裝;如果彈出本機文件夾,則說明有該工具,不需要安裝
[root@master ~]# rpm -qa |grep lrzsz //檢查是否安裝rz
[root@master ~]# sudo mkdir /opt/package //opt目錄下創建存放jdk與hadoop包的目錄
[root@master ~]# sudo mkdir /opt/module //opt目錄下創建解壓jdk與hadoop包的目錄
/*
查看創建的目錄
[root@master ~]# cd /opt
[root@master opt]# ls
*/
/*
傳輸文件
[root@master ~]# cd /opt/package //進入package目錄
[root@master package]# rz //開始傳輸本地文件,選中自己要傳輸的文件
[root@master package]# ls //完成后進入package目錄查看,有以下兩個文件
-- hadoop-2.7.7.tar.gz jdk-8u171-linux-x64.tar.gz --
*/

(2)SSH免密登錄
- 這個主機從機一起做
用於節點之間的訪問不需要每次輸入密碼,而且集群操作的時候需要訪問許多節點,可每個節點訪問需要輸入密碼,但當集群運行的時候不會每次都彈出輸入密碼,容易造成卡頓,導致集群運行不通暢,所以就設置所有節點之間的免密碼訪問權限。
- 設置master免密自己,步驟:
/*
生成⽆密碼密鑰對:
[root@master ~]# ssh-keygen -b 1024 -t rsa //生成⽆密碼密鑰對,一路回車,直至出現圖形
[root@master ~]# ls
-- anaconda-ks.cfg --
[root@master ~]# ls -all
[root@master ~]# cd .ssh
[root@master .ssh]# ls //查看有沒有生成公鑰(id_rsa.pub),私鑰(id_rsa)
-- id_rsa id_rsa.pub known_hosts --
*/
/*
設置master.hadoop免密:
[root@master .ssh]# ssh-copy-id master.hadoop //設置master.hadoop免密,期間可能會要你輸入一個 yes 和 master密碼
[root@master .ssh]# ls //查看,會發現多了個authorized_keys 文件
-- authorized_keys id_rsa id_rsa.pub known_hosts --
*/
/*
修改master.hadoop的 authorized_keys權限:
[root@master .ssh]# chmod 600 ~/.ssh/authorized_keys
[root@master .ssh]# ll //查看
-- 總用量 16 --
--- rw-------. 1 root root 232 1月 29 13:08 authorized_keys --
*/
/*jie
設置SSH配置:
[root@master .ssh]# cd //回到master節點
[root@master ~]# vim /etc/ssh/sshd_config //進入文件修改配置
(修改類容:
PermitRootLogin prohibit-password禁用
port 22 啟動
PermitRootLogin yes #啟用
RSAAuthentication yes # 啟⽤ RSA 認證
PubkeyAuthentication yes # 啟⽤公鑰私鑰配對認證⽅式
AuthorizedKeysFile .ssh/authorized_keys # 公鑰⽂件路徑(和上⾯⽣成的⽂件同)
)
[root@master ~]# service sshd restart //重啟SSH服務,使配置生效
*/
[root@master ~]# ssh master.hadoop //驗證登錄,如果登錄不提示輸入密碼,則表示成功
-
設置master免密登錄slave1,步驟:
這個大概步驟:還是先進入master的鑰匙對里面,利用上面步驟中master為自己生成免密的方法,為slave1生成免密,然后進入slave的節點中對authorized_keys權限的設置與SSH配置和上面相同,具體步驟如下:
[root@master ~]# ssh-keygen -b 1024 -t rsa //生成⽆密碼密鑰對,一路回車,直至出現圖形 [root@master ~]# cd ~/.ssh //進入 .ssh文件 /* 設置master對slave1免密: [root@master .ssh]# ssh-copy-id slave1.hadoop //期間可能會要你輸入一個 yes 和slave的密碼
*/
進入slave1.Hadoop節點中:
```shell
[root@slave1 ~]# ssh-keygen -b 1024 -t rsa //生成⽆密碼密鑰對,一路回車,直至出現圖形
[root@slave1 ~]# cd ~/.ssh //進入 .ssh文件
[root@slave1 .ssh]# ls //查看,會發現已有authorized_keys文件,因為這是我們在master上為它生成的
-- authorized_keys id_rsa id_rsa.pub --
/*
修改slave1.hadoop的 authorized_keys權限:與上面master中步驟一樣
*/
/*
設置SSH配置:與上面master中步驟一樣
*/
*/
通過master登錄slave1,登錄成功可以看見: [root@slave1 ~]# 個標志
[root@master ~]# ssh slave1.hadoop //驗證登錄,如果登錄不提示輸入密碼,則表示成功
*/
- 設置slave1免密登錄master,步驟:
[root@slave1 ~]# ssh-keygen -b 1024 -t rsa
[root@slave1 ~]# cd ~/.ssh
[root@slave1 .ssh]# ssh-copy-id master.hadoop //免密
(3)解壓安裝jdk(slave一樣)
注意:下面我們將把 /opt/package/ 中的jdk 解壓到 /opt/module/ 中,其中module 目錄是我再前面已經建的,具體可查看前面內容:文件傳輸。
- 解壓:
/*
查看將要解葯的文件
[root@master ~]# cd /opt/package //進入package目錄
[root@master package]# ls //查看
-- hadoop-2.7.7.tar.gz jdk-8u171-linux-x64.tar.gz --
*/
/*
解壓:
[root@master package]# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/module/ //解壓到 /opt/module/ 目錄中
*/
[root@master package]# ls /opt/module //解壓完成后查看module有沒有
-- jdk1.8.0_171 --
- 改名:由於后面操作會大量用到這個文件。而由於這個文件名太長,所以我們把 文件名 jdk1.8.0_171 改為 jdk1.8
[root@master package]# cd //回到主目錄
[root@master ~]# cd /opt/module //進入module目錄
[root@master module]# mv jdk1.8.0_171/ jdk1.8 //改名
[root@master module]# ls //查看
-- jdk1.8 --
- 配置JDK環境變量:
/*
獲取jdk路徑:
[root@master module]# cd jdk1.8 //進入jdk1.8目錄
[root@master jdk1.8]# pwd //查看目錄結構,並記住
-- /opt/module/jdk1.8 --
*/
/*
進入profile文件,添加jdk環境變量:
[root@master jdk1.8]# cd //回到主目錄
[root@master ~]# sudo vim /etc/profile //進入文件
*/
在 profile 文件末尾添加 JDK 路徑,我的添加內容如下:
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8
export PATH=$PATH:$JAVA_HOME/bin

- 使文件立即生效:
[root@master ~]# source /etc/profile //使文件立即生效
[root@master ~]# java -version //測試jdk是否安裝成功,即下面出現版本號
-- java version "1.8.0_171" --
(4)Hadoop集群安裝搭建
1.解壓和環境變量
-
解壓安裝Hadoop:
-
解壓:
/* 查看將要解葯的文件 [root@master ~]# cd /opt/package //進入package目錄 [root@master package]# ls //查看 -- hadoop-2.7.7.tar.gz jdk-8u171-linux-x64.tar.gz -- */ /* 解壓: [root@master package]# tar -zxvf hadoop-2.7.7.tar.gz -C /opt/module/ //解壓到 /opt/module/ 目錄中 */ [root@master package]# ls /opt/module //解壓完成后查看module有沒有,可以看見多了個文件 -- hadoop-2.7.7 jdk1.8 --
-
改名:為了后面操作簡單點
[root@master package]# cd //回到主目錄 [root@master ~]# cd /opt/module //進入module目錄 [root@master module]# mv hadoop-2.7.7/ hadoop2.7 //改名 [root@master module]# ls //查看 -- hadoop2.7 jdk1.8 --
-
配置Hadoop環境變量:
/* 獲取Hadoop路徑: [root@master module]# cd hadoop2.7 //進入Hadoop2.7目錄 [root@master jdk1.8]# pwd //查看目錄結構,並記住 -- /opt/module/hadoop2.7 -- */ /* 進入profile文件,添加jdk環境變量: [root@master jdk1.8]# cd //回到主目錄 [root@master ~]# sudo vim /etc/profile //進入文件 */
在 profile 文件末尾添加 Hadoop 路徑,我的添加內容如下:
##HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop2.7 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
-
使文件立即生效:
[root@master ~]# source /etc/profile //使配置文件立即生效 [root@master ~]# hadoop version //測試Hadoop是否安裝成功,即下面出現版本號 -- Hadoop 2.7.7 --
-
2.Hadoop目錄結構
- 首先查看一下我沒在Hadoop中需要了解的目錄結構:
[root@master ~]# ll /opt/module/hadoop2.7 //查看解壓的 Hadoop包生成的目錄下的結構

其中重要目錄:
目錄 | 作用 |
---|---|
bin | 存放對 Hadoop 相關服務(HDFS,YARN)進行操作的腳本 |
etc | Hadoop 的配置文件目錄,存放 Hadoop 的配置文件 |
lib | 存放 Hadoop 的本地庫(對數據進行壓縮解壓縮功能) |
sbin | 存放啟動或停止 Hadoop 相關服務的腳本 |
share | 存放 Hadoop 的依賴 jar 包、文檔、和官方案例 |
3.配置
3.1配置hadoop-env.sh:
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/hadoop-env.sh //進入
編輯內容:向文件中 export JAVA_HOME= 后面添加 jdk 的安裝路徑
export JAVA_HOME=/opt/module/jdk1.8

3.2配置 core-site.xml (核心組件):
- 需要先在 opt/module/hadoop2.7 目錄下創建一個tmp目錄
/*
創建目錄:
[root@master ~]# sudo mkdir /opt/module/hadoop2.7/tmp //創建tmp目錄
[root@master ~]# ls /opt/module/hadoop2.7 //查看目錄
-- bin include libexec NOTICE.txt sbin tmp
etc lib LICENSE.txt README.txt share --
*/
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/core-site.xml //進入文件
需要在 【
<!-- 指定 HDFS 中 NameNode 的地址 -->
<!-- 默認節點(寫自己主機的ip)端口,端口默認為9000 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.6.10:9000</value>
</property>
<!-- 指定 Hadoop 運行時產生文件的存儲目錄 -->
<!-- hdfs的臨時文件的目錄***這個要記好,后面初始化錯誤可能會用到*** -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop2.7/tmp</value>
<description>Abase for other temporary directories.</description>
</property>

3.3配置 hdfs-site.xml(文件系統):
- 需要先在tmp目錄下再創建個 name 和 data m目錄
/*
創建目錄:
[root@master ~]# sudo mkdir /opt/module/hadoop2.7/tmp/name //創建name目錄
[root@master ~]# sudo mkdir /opt/module/hadoop2.7/tmp/data //創建data目錄
[root@master ~]# ls /opt/module/hadoop2.7/tmp //查看目錄
-- data name --
*/
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/hdfs-site.xml //進入文件
需要在 【
<!-- 設置數據塊應該被復制的份數(和集群機器數量相等,目前只有2個,以后有幾台就填幾台) -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- namenode備用節點,目前只有一個填主機的IP地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.6.10:50090</value>
</property>
<!--指定NameNode運行產生的文件存儲目錄-->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/module/hadoop2.7/tmp/name</value>
</property>
<!--指定DataNode運行產生的文件存儲目錄-->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/module/hadoop2.7/tmp/data</value>
</property>

3.4配置 mapred-site.xml.template 文件(計算框架文件):
- 首先將 mapred-site.xml.template 文件改名為 mapred-site.xml
/*
文件改名:
[root@master ~]# cd /opt/module/hadoop2.7/etc/hadoop //進入目標所在目錄
[root@master hadoop]# mv mapred-site.xml.template mapred-site.xml //改名
[root@master hadoop]# ls //查看有沒有 mapred-site.xml 文件
[root@master hadoop]# cd //返回主目錄
*/
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/mapred-site.xml //進入
需要在 【
<!--配置JobTracker的地址和端口-->
<property>
<name>mapred.job.tracker</name>
<value>http://master.hadoop:9001</value>
</property>
<!-- mapreduce的工作模式:yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- mapreduce的工作地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master.hadoop:10020</value>
</property>
<!-- web頁面訪問歷史服務端口的配置 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master.hadoop:19888</value>
</property>

3.5配置 yarn-site.xml 文件:
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/yarn-site.xml
需要在 【
<!-- reducer獲取數據方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--客戶端通過該地址向RM提交應用程序,殺死應用程序等。-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master.hadoop</value>
</property>
<!--ApplicationMaster通過該地址向RM申請資源、釋放資源等。-->
<property>
<name>yarn.resourcemanager.scheduler.hostname</name>
<value>master.hadoop</value>
</property>
<!--NodeManager通過該地址向RM匯報心跳,領取任務等。-->
<property>
<name>yarn.resourcemanager.resource-tracker.hostname</name>
<value>master.hadoop</value>
</property>
!--管理員通過該地址向RM發送管理命令等。-->
<property>
<name>yarn.resourcemanager.admin.hostname</name>
<value>master.hadoop</value>
</property>
<!--用戶可通過該地址在瀏覽器中查看集群各類信息-->
<property>
<name>yarn.resourcemanager.webapp.hostname</name>
<value>master.hadoop</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留時間設置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>

3.6配置 slaves 文件:
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/slaves
配置類容:
了解:偽分布式時:slaves文件中master主機即作為 NameNode ,也作為DataNode;而完全分布式時:master主機作為 NameNode ,slave1 從機作為DataNode。所以下面我們需要寫入從機名
slave1.hadoop

3.7配置masters文件:
[root@master ~]# vim /opt/module/hadoop2.7/etc/hadoop/masters
配置內容:masters這是一個新文件,我們只再里面添加自己的主機IP
192.168.6.10

(5)遠程復制(推薦)
- 原因:
- 我們已經完成了master主機的Hadoop文件配置,所以現在需要去為slave1從機配置Hadoop文件
- 方法一:根據當前slave1實際情況,且按照上面master的方法為slave1配置
- 方法二:將配置好的master主機下的 /opt/module/hadoop2.7/ 下的所有文件克隆到slave1下的 /opt/module/hadoop2.7 文件下
- 而方法二是相對方便的,所以我選則的時采用方法二的方
- 我們已經完成了master主機的Hadoop文件配置,所以現在需要去為slave1從機配置Hadoop文件
- 克隆:方法二(注意:按自己的目錄結構進行遠程復制)
[root@master ~]# scp -r /opt/module/hadoop2.7/* root@192.168.6.11:/opt/module/hadoop2.7
5.啟動集群
5.1格式化HDFS文件系統(slave1一樣)
- 第一次啟動時格式化,以后就不要總格式化
- 這里如果安裝的時候多次初始化,會導致錯誤,解決方法是刪除
/opt/hadoop
目錄下的tmp文件
[root@master ~]# hdfs namenode -format
5.2.啟動
[root@master ~]# start-all.sh //啟動
[root@master ~]# jps //查看
master:jps
8965 ResourceManager
9722 Jps
8811 SecondaryNameNode
8622 NameNode
**slave1: **jps
4562 DataNode
4791 Jps
4670 NodeManager
查看web網頁:

5.3關閉集群
stop-all.sh