大數(shù)據(jù) | Hadoop集群搭建(完全分布式)
知識目錄
一、前言
二、配置三臺虛擬機
2.1 克隆三臺虛擬機
2.2 配置克隆的虛擬機
2.3 使用Xshell連接虛擬機
2.4 配置SSH免密登錄
三、Hadoop集群準備
3.1 安裝 rsync
3.2 安裝xsync分發(fā)腳本
3.3 安裝JDK和安裝Hadoop
3.4 配置環(huán)境變量
3.5 分發(fā)
四、Hadoop集群搭建
4.1 修改配置文件
4.2 配置workers
4.3 格式化集群
4.4 啟動集群
4.5 關閉集群
五、結語
??歡迎大家:這里是我記錄知識的地方,喜歡的話請三連,有問題請私信??
在集群搭建期間我經(jīng)歷了各種各樣的錯誤,困難和BUG,不過都被我收割了。成功搭建之后,為了加深對Hadoop集群環(huán)境搭建的理解,我決定推翻重做,這次重做的過程就順利多了!終于,歷時兩小時,我再次搭建好了Hadoop環(huán)境,而這篇文章就是我兩次搭建總結出來的方法,分享出來希望能幫助到大家。
二、配置三臺虛擬機
2.1 克隆三臺虛擬機
先從一臺虛擬機克隆出三臺虛擬機,作為搭建Hadoop完全分布式的三個節(jié)點。這里我的三個節(jié)點分別叫 hadoop102 hadoop103 hadoop104,克隆這里需要注意的地方:
虛擬機要是關機狀態(tài)才可以克隆
從虛擬機當前狀態(tài)克隆
創(chuàng)建完整克隆,之后填寫虛擬機名稱和存放位置就好

2.2 配置克隆的虛擬機
修改網(wǎng)絡配置文件
sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

修改主機名
sudo vim /etc/hostname

修改客戶機內容
sudo vim /etc/hosts

重啟reboot,在另外兩臺虛擬機并上將步驟再重復兩次
sudo reboot
Windows配置IP和主機名對應
進入到這個文件夾下,修改hosts文件
C:\Windows\System32\drivers\etc

將這個文件拖動到桌面,使用記事本打開,進行編輯后放回覆蓋原文件。

2.3 使用Xshell連接虛擬機
在xshell中新建一個連接,重復三次,分別用xshell連接上三臺虛擬機

至此,創(chuàng)建三個虛擬機節(jié)點,以及使用Xshell連接虛擬機工作我們就做好了。這是搭建Hadoop集群前的準備工作,這里我的 hadoop102 hadoop103 hadoopp104 分別對應的ip為 192.168.10.102/103/104.
2.4 配置SSH免密登錄
在搭建Hadoop集群之前,我們還要為三臺虛擬機搭建免密登錄,這是基礎,否則后面會不斷提示輸入密碼。這是一個繁瑣的操作,因此配置了免密之后我們就可以省略這些步驟,節(jié)省時間。
使用hadoop102登錄hadoop102
ssh localhost
接下來會提示問題,輸入yes就好,之后輸入本機的密碼,就可以連接上本機。我們登錄本機的目的是在 home 目錄下生成 .ssh 隱藏文件夾,以便進行下一步操作,下面退出剛才的登錄。
exit
進入到ssh文件夾(centos-1是我的普通用戶名,如果虛擬機只有root用戶,一定要創(chuàng)建一個普通用戶,否則找不到這個文件夾)。
cd /home/centos-1/.ssh/
在ssh文件夾下生成私鑰
執(zhí)行下面的命令生成本機的私鑰
ssh-keygen -t rsa
執(zhí)行完這個命令之后,查看當前文件夾的文件,可以看到多出這兩個文件

公私鑰對拷
執(zhí)行下面的命令,將Hadoop102的私鑰拷貝到Hadoop102 Hadoop103 Hadoop104上
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
最后,在Hadoop103,Hadoop104上重復上面的步驟,這樣就能實現(xiàn)三臺機器之前的相互免密登錄。
思考:root用戶進行免密登錄需不需要輸入密碼?
答案是要。因為root用戶下的.ssh文件夾和普通用戶是不一樣的,如果想要在 root 用戶下還能免密登錄,也要重復上面的步驟,個人認為hadoop102的root用戶配置了免密就可以了,其他的兩臺也可以配置
三、Hadoop集群準備
3.1 安裝 rsync
安裝同步工具rsync,這是安裝xsync腳本的基礎
sudo yum install -y rsync
1
3.2 安裝xsync分發(fā)腳本
查看環(huán)境變量
echo $PATH

進入到在PATH中的一個目錄
cd /usr/local/bin
復制下面的分發(fā)腳本 xsync.sh ,再使用下面的命令創(chuàng)建xsync文件并粘貼,保存退出
sudo vim xsync
分發(fā)腳本xsync.sh

授予可執(zhí)行權限
sudo chmod 777 xsync
至此,虛擬機的任意目錄就可以使用xsync命令。如果不可以使用,則證明安裝失敗,請仔細檢查。
3.3 安裝JDK和安裝Hadoop
進入centos操作目錄
cd /opt
創(chuàng)建JDK和Hadoop的壓縮包存放目錄和文件存放目錄
sudo mkdir module
sudo mkdir software
在Xshell中通過Xftp文件上傳工具(或者lrzsz、finalShell等),上傳JDK和Hadoop的壓縮包到software目錄

解壓JDK和Hadoop到module目錄
tar -xzvf jdk-8u202-linux-x64.tar.gz -C /opt/module/
tar -xzvf hadoop-3.1.3.tar.gz -C /opt/module/
3.4 配置環(huán)境變量
進入到/etc/profile.d文件夾
cd /etc/profile.d
my_env.sh文件

新建文件my_env.sh,將my_env.sh文件內容復制進來
sudo vim my_env.sh
刷新環(huán)境變量
source /etc/profile
測試環(huán)境變量是否配置成功
java
hadoop
如果輸出一大片信息說明配置好了
3.5 分發(fā)
使用xsync將hadoop102的jdk、Hadoop以及環(huán)境變量分發(fā)到另外兩臺虛擬機上。
分發(fā)JDK和Hadoop
xsync /opt/module/
分發(fā)環(huán)境變量
xsync /etc/profile.d/my_env.sh
四、Hadoop集群搭建
4.1 修改配置文件
首次搭建Hadoop完全分布式,要分別修改下面四個文件,這里僅展示configuration標簽內的內容。
首先進入到Hadoop的etc目錄的hadoop目錄
cd /opt/module/hadoop-3.1.3/etc/hadoop/
vim core-site.xml
core-site.xml

mapred-site.xml

hdfs-site.xml

yarn-site.xml

修改完成之后,退出到hadoop目錄
cd /opt/module/hadoop-3.1.3/etc
執(zhí)行分發(fā),將etc下的hadoop目錄的四個配置文件同步
xsync hadoop
4.2 配置workers
進入到配置文件目錄
cd /opt/module/hadoop-3.1.3/etc/hadoop/
修改workers文件,將文件內容改成三臺主機名即可,之后再次分發(fā),將修改同步。
vim workers

xsync /opt/module/hadoop-3.1.3/etc/hadoop/
4.3 格式化集群
在hadoop102上進行格式化
hdfs namenode -format
1
至此,Hadoop完全分布式(集群)就搭建好了。
4.4 啟動集群
下面這張圖就是我們搭建的Hadoop集群的集群規(guī)劃。首先進入到hadoop目錄

cd /opt/module/hadoop-3.1.3/
在Hadoop102啟動HDFS(Hadoop分布式文件系統(tǒng))
sbin/start-dfs.sh
在Hadoop103啟動YARN(Hadoop資源調度管理)
sbin/start-yarn.sh
使用jps命令來查看進程,驗證是否和集群規(guī)劃一致。



如果按照教程來,執(zhí)行jps命令得到的結果和上圖不一致,請仔細檢查是否哪一步出現(xiàn)了問題,再進行下一步。
4.5 關閉集群
首先關閉YARN,再關閉HDFS,至此,Hadoop集群搭建(完全分布式搭建)成功。
sbin/stop-yarn.sh
sbin/stop-dfs.sh
五、結語
學習是一個漫長且持續(xù)漸進的過程,其中不免遇到很多困難,有時候讓你頭痛,讓你心慌。有人選擇逃避,有人選擇全力以赴,希望大家的每一天都變得充實。