Hadoop 3.1.3 分布式集群搭建,超詳細,保姆級教程
- 1.環境準備
- 2 jdk1.8安裝
- 2.1 卸載虛擬機自帶的JDK
- 2.2 安裝JDK1.8
- 3.在 hadoop102 安裝Hadoop集群
- 3.1集群安裝準備
- 3.2 安裝hadoop
- 3.3 hadoop運行模式
- 3.4 完全分布式運行模式(開發重點)
- 3.4.1 撰寫集群分發腳本 xsync
- 3.4.2 ssh免密配置
- 3.4.3 集群配置
- 3.4.4 啟動集群
- 3.5 測驗集群:
在學習的時候,碰到過很多同學,因為安裝集群遇到過各種稀奇古怪的問題,導致很多人的興趣大大降低,并且本人同學也有很多問題,在安裝程序中,所有寫一篇安裝教程,分享給大家如何搭建,
1.環境準備
大家可以根據自己的需要,進行下載,
需要用的環境是:
1.VMware 15
2.CentOS-7.5
3.Xshell 6 Xftp 6
4.jdk 1.8
5.hadoop-3.1.3 jar包 hadoop下載鏈接
2 jdk1.8安裝
2.1 卸載虛擬機自帶的JDK
注意:如果虛擬機時安裝的桌面版本的linux,需要卸載虛擬機中的JDK,這是安裝桌面版本自帶的,如果你的虛擬機是最小化安裝不需要執行這一步,
[root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e
--nodeps
重啟虛擬機:
[root@hadoop100 ~]# reboot
解釋欄位:
- rpm -qa:查詢所安裝的所有 rpm 軟體包
- grep -i:忽略大小寫
- xargs -n1:表示每次只傳遞一個引數
- rpm -e –nodeps:強制卸載軟體
2.2 安裝JDK1.8
0.用 XShell 傳輸工具將 JDK 匯入到虛擬機中的檔案夾下面
我個人習慣在當前用戶下建立二個檔案夾,一個用來存放安裝包,一個是安裝軟體,
1.將JDK安裝包上傳到存放安裝包路徑中:
2.在Linux目錄下查看是否上傳成功:
[abc@hadoop102 ~]$ ls /opt/software/

3. 解壓 JDK 到/opt/module 目錄下
[abc@hadoop102 software]$ tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/
4.配置 JDK 環境變數
(1)新建/etc/profile.d/my_env.sh 檔案
[abc@hadoop102 ~]$ sudo vim /etc/profile.d/my_env.sh
(2)添加如下內容
#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
(3)保存后退出
:wq
(4)source 一下/etc/profile 檔案,讓新的環境變數 PATH 生效
[abc@hadoop102 ~]$ source /etc/profile
5.測驗 JDK 是否安裝成功
[abc@hadoop102 ~]$ java -version
出現以下結果表示安裝成功:
3.在 hadoop102 安裝Hadoop集群
3.1集群安裝準備
注意:安裝前,請確保自己有3臺虛擬機,并且沒有問題,jdk都存在,可以直接將hadoop102上的虛擬機復制也可以,需要更改下主機名和主機ip
注意:克隆時,要先關閉 hadoop102
1.修改克隆機 IP,以下以 hadoop103 舉例說明
修改克隆虛擬機的靜態 IP,確保橫線部分和配置網路ip一致
[root@hadoop100 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
改成
2.修改克隆機主機名,以下以 hadoop102 舉例說明
(1)修改主機名稱
[root@hadoop100 ~]# vim /etc/hostname

3.重啟虛擬機
[root@hadoop100 ~]# reboot
3.2 安裝hadoop
Hadoop 下載地址:
鏈接地址:hadoop3.1.3下載地址
https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
1.用 XShell 檔案傳輸工具將 hadoop-3.1.3.tar.gz 匯入到 opt 目錄下面的 software 檔案夾下面
2.在Linux目錄下查看:
命令:/opt/software

3.將hadoop-3.1.3解壓到module目錄下:
[abc@hadoop102 software]$ tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
4.查看是否解壓成功
[abc@hadoop102 software]$ ls /opt/module/hadoop-3.1.3
5.將 Hadoop 添加到環境變數
(1)獲取 Hadoop 安裝路徑
[abc@hadoop102 hadoop-3.1.3]$ pwd

(2)打開/etc/profile.d/my_env.sh 檔案
[abc@hadoop102 hadoop-3.1.3]$ sudo vim/etc/profile.d/my_env.sh
(3)將一下內容添加檔案中
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
(4) 查看結果
(5)讓修改后的檔案生效
[abc@hadoop102 hadoop-3.1.3]$ source /etc/profile
(6)測驗是否安裝成功
[abc@hadoop102 hadoop-3.1.3]$ hadoop version

3.3 hadoop運行模式
1.Hadoop 官方網站:官方地址
http://hadoop.apache.org/
2.Hadoop 運行模式包括:
本地模式、偽分布式模式以及完全分布式模式,
- 本地模式:單機運行,只是用來演示一下官方案例,生產環境不用,
- 偽分布式模式:也是單機運行,但是具備 Hadoop 集群的所有功能,一臺服務器模擬一個分布式的環境,個別缺錢的公司用來測驗,生產環境不用,
- 完全分布式模式:多臺服務器組成分布式環境,生產環境使用,
3.4 完全分布式運行模式(開發重點)
安裝所需要的條件:
1.準備 3 臺客戶機(關閉防火墻、靜態 IP、主機名稱)
2.安裝 JDK
3.配置環境變數
4.安裝 Hadoop
5.配置環境變數
3.4.1 撰寫集群分發腳本 xsync
- 在/home/atguigu/bin 目錄下創建 xsync 檔案
[abc@hadoop102 opt]$ cd /home/atguigu
[abc@hadoop102 ~]$ mkdir bin
[abc@hadoop102 ~]$ cd bin
[abc@hadoop102 bin]$ vim xsync
在檔案中撰寫以下內容:
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..." exit ;
fi
case $1 in
"start")
echo " =================== 啟動 hadoop 集群 ==================="
echo " --------------- 啟動 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"
echo " --------------- 啟動 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"
echo " --------------- 啟動 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 關閉 hadoop 集群 ==================="
echo " --------------- 關閉 historyserver ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"
echo " --------------- 關閉 yarn ---------------"
ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"
echo " --------------- 關閉 hdfs ---------------"
ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)
echo "Input Args Error. "
;;
esac
- 修改腳本 xsync 具有執行權限
[abc@hadoop102 bin]$ chmod +x xsync
- 測驗腳本
[abc@hadoop102 ~]$ xsync /home/atguigu/bin
- 將腳本復制到/bin 中,以便全域呼叫
[abc@hadoop102 bin]$ sudo cp xsync /bin/
- 同步環境變數配置(root 所有者)
[abc@hadoop102 ~]$ sudo ./bin/xsync /etc/profile.d/my_env.sh
注意:如果用了 sudo,那么 xsync 一定要給它的路徑補全,
讓環境變數生效
[abc@hadoop103 bin]$ source /etc/profile
[abc@hadoop104 opt]$ source /etc/profile
3.4.2 ssh免密配置
1.生產密鑰命令:ssh-keygen -t rsa

出現一下情況一直按回車就解決:

生產密鑰結束:
2.將密鑰拷貝到hadoop103 hadoop104:
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop102
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop103
[abc@hadoop102 .ssh]$ ssh-copy-id hadoop104
注意:
還需要在 hadoop103 上采用 atguigu 賬號配置一下無密登錄hadoop102、hadoop103、hadoop104 服務器上,
還需要在 hadoop104 上采用 atguigu 賬號配置一下無密登錄hadoop102、hadoop103、hadoop104 服務器上,
還需要在 hadoop102 上采用 root 賬號,配置一下無密登錄到hadoop102、hadoop103、hadoop104;
3.4.3 集群配置
注意:
NameNode 和 SecondaryNameNode 不要安裝在同一臺服務器
ResourceManager 也很消耗記憶體,不要和 NameNode\SecondaryNameNode 配置在同一臺機器上,

1.組態檔說明
Hadoop 組態檔分兩類:默認組態檔和自定義組態檔,只有用戶想修改某一默認配置值時,才需要修改自定義組態檔,更改相應屬性值,
(1)默認組態檔:
要獲取的默認檔案 檔案存放在 Hadoop 的 jar 包中的位置
(2)自定義組態檔:
core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四個組態檔存放在$HADOOP_HOME/etc/hadoop 這個路徑上,用戶可以根據專案需求重新進行修改配置,
2.配置集群
(1)核心組態檔 vim core-site.xml
<configuration>
<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
<!-- 指定 hadoop 資料的存盤目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/data</value>
</property>
<!-- 配置 HDFS 網頁登錄使用的靜態用戶為 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>abc</value>
</property>
</configuration>

(2)HDFS 組態檔vim hdfs-site.xml
<configuration>
<!-- nn web 端訪問地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop102:9870</value>
</property>
<!-- 2nn web 端訪問地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:9868</value>
</property>
</configuration>

(3)YARN 組態檔vim yarn-site.xml
<configuration>
<!-- 指定 MR 走 shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>
<!-- 環境變數的繼承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CO
NF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAP
RED_HOME</value>
</property>
</configuration>

(4)MapReduce 組態檔vim mapred-site.xml
<configuration>
<!-- 指定 MapReduce 程式運行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

(5)配置 workers vim workers
注意:不能有空行
hadoop102
hadoop103
hadoop104

3.在集群上分發配置好的 Hadoop 組態檔
[abc@hadoop102 hadoop]$ xsync /opt/module/hadoop-3.1.3/etc/hadoop/
4.去 103 和 104 上查看檔案分發情況
[atguigu@hadoop103 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
[atguigu@hadoop104 ~]$ cat /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml
3.4.4 啟動集群
- 如果集群是第一次啟動,需要在 hadoop102 節點格式化 NameNode
注意:格式化 NameNode,會產生新的集群 id,導致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往資料,如果集群在運行程序中報錯,需要重新格式化 NameNode 的話,一定要先停 止 namenode 和 datanode 行程,并且要洗掉所有機器的 data 和 logs 目錄,然后再進行格式化,
格式化命令:
[abc@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
- 啟動 HDFS
[abc@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh
- 在配置了 ResourceManager 的節點(hadoop103)啟動 YARN
[abc@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh
-
Web 端查看 HDFS 的 NameNode
(a)瀏覽器中輸入:http://hadoop102:9870
(b)查看 HDFS 上存盤的資料資訊
-
Web 端查看 YARN 的 ResourceManager
(a)瀏覽器中輸入:http://hadoop103:8088
(b)查看 YARN 上運行的 Job 資訊,
-
集群搭建完成,使用jps命令查看行程:
jps
[abc@hadoop102 ~]$ jps
[abc@hadoop103 ~]$ jps
[abc@hadoop104 ~]$ jps
hadoop102上行程:
hadoop103行程:
Hadoop104行程:
如果出現這幾個行程代表安裝完成;恭喜大家
3.5 測驗集群:
首先確保集群在啟動狀態下,在hadoop的當前目錄下創建一個檔案,請確保一下命令君在hadoop102上運行;
- 命令:
vim /opt/module/hadoop-3.1.3/word.txt
- 給word.txt中寫一些資料,
舉例子寫的一下代碼:
hadoop yarn
hadoop mapreduce
hello
hello yarn
保存退出;(按 esc 后,按大寫ZZ退出)
- 將word.txt上傳到hdfs中
命令:
hadoop fs -put /opt/module/hadoop-3.1.3/word.txt /
上hdfs上查看:

- 利用hadoop自帶的測驗類運行:
解釋:運行wordcount程式,將hdfs跟目錄下的word.txt運行,并分類,然后輸出到dhfs根目錄下的output檔案夾
hadoop jar /opt/module/hadoop-3.1.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /word.txt /output
運行程序截圖:
結束時候的運行狀況:

- 在hdfs網頁端查看結果:

查看輸出的內容:(按序號點擊就可查看)
到這里已經安裝完成了,如果本篇文章,對大家有幫助,希望大家給點個贊,非常感謝,如果有任何疑問,請評論區提問,感謝大家
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301239.html
標籤:其他
上一篇:【SpringBoot集成ElasticSearch 02】使用 spring-boot-starter-data-elasticsearch 集成并使用高級客戶端
