天天看點

hadoop完全分布式叢集配置

一、下載下傳軟體

1.JDK11(版本太高不一定就好,我試了16版本的,運作java檔案的時候會發生錯誤)

2.VMware-workstation pro 16

3.CentOS-7.iso (linux的虛拟機都行)(我這裡是3台虛拟機)

4.hadoop 3.3.0

5.FileZilla(連接配接虛拟機,可以簡單的操作檔案)

軟體下載下傳可以去官網下載下傳,我這裡也有這些軟體的種子檔案:連結:hadoop完全分布式搭建所需軟體

提取碼:co3u

軟體如下圖所示:

hadoop完全分布式叢集配置

關于怎麼打開種子檔案,可以看這裡的教程:下載下傳種子檔案教程

二、hadoop的靜态IP配置

因為CentOS-7系統沒有IP顯示,是以需要配置靜态IP,靜态IP配置教程:靜态IP配置

三台虛拟機都要配置好靜态IP,我這裡配置的内容是hadoop1:192.128.27.100;hadoop2:192.128.27.101;hadoop3:192.168.27.102

配置好靜态IP之後,就可以使用FileZilla軟體連接配接虛拟機了,連接配接如下圖所示:

hadoop完全分布式叢集配置

連接配接好之後就可以對虛拟機的檔案進行操作了。

hadoop完全分布式叢集配置

三、關閉防火牆

Centos7預設安裝了firewalld,如果沒有安裝的話,可以使用

yum install firewalld firewalld-config

進行安裝。

在三台虛拟機上都要操作,在終端輸入:

systemctl stop firewalld          #禁用防火牆
sytemctl disable firewalld       #停止并禁用開機啟動
           

在輸入

systemctl status firewalld

檢視虛拟機狀态,為(dead)就算關閉成功。

hadoop完全分布式叢集配置

四、配置JDK和Hadoop

步驟一:修改hostname(3台虛拟機都要操作)

在虛拟機終端輸入:

vi /etc/hostname  
           

按 i 進入修改模式,修改完後按Esc,最後按:wq儲存退出。

修改3台虛拟機的hostname,我這裡是将hadoop1修改為master,hadoop2修改為slave1,hadoop3修改為slave2;如下圖所示:

hadoop完全分布式叢集配置
hadoop完全分布式叢集配置
hadoop完全分布式叢集配置

最後修改完都要進行重新開機,名字才會變成你修改之後的名字。終端輸入

reboot         #重新開機
           

步驟二:修改hosts檔案,配置映射(隻對master虛拟機進行配置,後兩台複制配置即可)

在虛拟機終端輸入:

vi /etc/hosts         #修改hosts檔案
           
hadoop完全分布式叢集配置

然後将配置複制給其他兩台虛拟機,在master終端輸入:

scp /etc/hosts slave1:/etc                #将master的hosts檔案複制給slave1虛拟機
scp /etc/hosts slave2:/etc                #将master的hosts檔案複制給slave1虛拟機
           

步驟三:JDK和hadoop的配置(隻對master虛拟機進行配置,後兩台複制配置即可)

1.在根目錄下建立/data/packs檔案夾 存放hadoop和jdk的安裝壓縮包,建立software檔案夾存放壓縮後的檔案(這步可以通過FileZilla可視化操作,也可以在虛拟機終端操作)

下面為虛拟機終端的操作,在終端輸入代碼:

mkdir -P /data/packs            #建立/data/packs檔案夾 用于存放hadoop和jdk的安裝壓縮包
mkdir /software					#建立software檔案夾  用于存放壓縮後的檔案
tar zxvf /data/packs/packs/hadoop-3.3.0.tar.gz -C /software #解壓hadoop壓縮包,并将解壓後的檔案存入software檔案夾中
tar zxvf /data/packs/packs/jdk-11_linux-x64_bin.tar.gz -C /software #解壓hadoop壓縮包,并将解壓後的檔案存入software檔案夾中
           

注意: 剛剛建立好的/data/packs檔案夾中并沒有hadoop和jdk壓縮包,你需要把自己下好的壓縮包通過FileZilla從本地電腦拖入虛拟機中,才能進行解壓,如下圖所示:

hadoop完全分布式叢集配置

2.到這裡,software檔案夾中就有了hadoop和jdk檔案,為了友善環境變量的配置,我們這裡要對jdk檔案和hadoop檔案進行重命名(可以在FileZilla中操作,也可以在終端操作)

在終端操作的過程,輸入:

mv /software/hadoop-3.3.0/ /software/hadoop    #将hadoop-3.3.0檔案夾重新命名為hadoop
mv /software/jdk-11/ /software/java      #将hadoop-3.3.0檔案夾重新命名為java
           

如下圖所示,在software中有名字為hadoop和java的檔案夾。

hadoop完全分布式叢集配置

3.修改hadoop上的一些配置檔案(7個)

(比較簡單)方法一: 我給的種子檔案中就有hadoop的配置檔案,是我已經配置好的,可以通過FileZilla直接複制進檔案夾中,覆寫原檔案,如下圖所示:

hadoop完全分布式叢集配置
hadoop完全分布式叢集配置

方法二: 需要修改7個配置檔案

(1)hadoop/etc/hadoop/core-site.xml

(2)hadoop/etc/hadoop/yarn-site.xml

(3)hadoop/etc/hadoop/hdfs-site.xml

(4)hadoop/etc/hadoop/mapred-site.xml

(5)hadoop/etc/hadoop/workers (hadoop為3.0以下版本的為slaves檔案)

(6)hadoop/etc/hadoop/hadoop-env.sh

(7)hadoop/etc/hadoop/yarn-env.sh

你可以通過FileZilla将這些檔案下載下傳到本地電腦進行配置,然後再複制會虛拟機;也可以直接再終端進行配置。

下面我将介紹在終端怎麼進行配置(以core-site.xml為例,其它檔案也一樣配置):

在終端輸入

vi /software/hadoop/etc/hadoop/core-site.xml

進入core-site.xml檔案進行配置,配置結果如下圖所示:可以直接敲進去

注意,這裡的終端不支援中文顯示,中文會出現亂碼。

按 i 進入修改模式,修改完後按Esc,最後按:wq儲存退出。

hadoop完全分布式叢集配置

其他檔案的配置也是通過vi指令進入配置,配置的代碼我也在上傳的種子檔案中放了,如下圖所示:

hadoop完全分布式叢集配置

這裡有7個配置檔案的所有配置代碼,直接複制就行。因為不支援中文顯示,複制的時候不要有中文注釋。

如果沒有下載下傳我的種子檔案,想要看具體的配置資訊,可以點選這個連接配接檢視:hadoop的7個配置檔案代碼

4.到這一步,配置好的jdk和hadoop檔案已經存在master虛拟機中了,可以使用scp指令将他們複制到另外兩台虛拟機中。複制過程用時1~2分鐘左右。

scp -r /software/ slave1:/    #将java和hadoop檔案夾拷貝到slave1虛拟機中
scp -r /software/ slave2:/    #将java和hadoop檔案夾拷貝到slave2虛拟機中
           

5.然後需要配置jdk和hadoop的環境變量,在master虛拟機終端輸入:

vi /etc/profile        #修改環境變量
           

按 i 進入修改模式,把下圖紅色方框中的代碼敲入配置檔案中,修改完後按Esc,最後按:wq儲存退出。

hadoop完全分布式叢集配置

輸入内容如下:

# java and hadoop
export JAVA_HOME=/software/java
export HADOOP_HOME=/software/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
           

然後輸入

. etc/profile

激活配置。

同樣的,到這裡master虛拟機的環境變量就配置完成了,也要将它們複制給另外兩台虛拟機,在master終端輸入:

scp /etc/profile slave1:/etc                      #将環境變量拷貝給slave1虛拟機
scp /etc/profile slave2:/etc                      #将環境變量拷貝給slave2虛拟機
           

拷貝結束後分别在兩台虛拟機上輸入

. etc/profile

激活環境配置。

五、配置ssh的免密登入

1.三台虛拟機都在終端輸入:

ssh-keygen    
           

檢視根目錄下是否有.ssh檔案生成,有則密鑰生成成功,如下圖所示:

hadoop完全分布式叢集配置

2.進入.ssh檔案夾配置:

(1)在master上配置

cd ~/.ssh        #進入.ssh檔案夾
cat id_rsa.pub >> authorized_keys     #把密鑰追加到authorized_keys
           

此時,master中的authorized_keys 就有master的密鑰了,把這個authorized_keys 拷貝給slave1虛拟機,在master終端輸入:

scp authorized_keys slave1:~/.ssh

(2)在slave1上配置

cd ~/.ssh        #進入.ssh檔案夾
cat id_rsa.pub >> authorized_keys     #把密鑰追加到authorized_keys
           

此時,slave1中的authorized_keys 就有master和slave1的密鑰了,把這個authorized_keys 拷貝給slave2虛拟機,在slave1終端輸入:

scp authorized_keys slave2:~/.ssh

(3)在slave2上配置

cd ~/.ssh        #進入.ssh檔案夾
cat id_rsa.pub >> authorized_keys     #把密鑰追加到authorized_keys
           

此時,slave2中的authorized_keys 就有master、slave1和slave2的密鑰了,把這個authorized_keys 拷貝給master和slave1虛拟機,在slave2終端輸入:

scp authorized_keys  slave1:~/.ssh                              #拷貝給slave1虛拟機
scp authorized_keys  master:~/.ssh								#拷貝給master虛拟機
           

這時候三台虛拟機上的authorized_keys都追加了三個密鑰,使用cat指令檢視是否有三個,輸入:

cat authorized_keys
           
hadoop完全分布式叢集配置

看到3個密鑰,說明免密登入配置成功,下面來驗證。我就舉一個maste免密連接配接slave1的例子,輸入:

ssh slave1
           
hadoop完全分布式叢集配置

如圖,不需要登入密碼就可以用ssh連接配接slave1虛拟機了,證明配置成功。

六、運作hadoop并驗證

步驟一:格式化namenode

輸入

cd /software/hadoop/bin

進入bin目錄下進行格式化,輸入

hdfs namenode -format

進行格式化namenode。

步驟二:啟動hadoop節點:

輸入

cd /software/hadoop/sbin

進入sbin的檔案夾内,輸入指令

. /start-all.sh

啟動hadoop,如下圖所示:

hadoop完全分布式叢集配置

步驟三:檢視各節點的啟動情況

在三台虛拟機中輸入

jps

檢視,如下圖所示就算啟動成功:

hadoop完全分布式叢集配置
hadoop完全分布式叢集配置
hadoop完全分布式叢集配置

步驟四:驗證網頁端啟動

根據自己配置的ip和端口在網頁位址欄輸入:

192.168.27.100:50070			#啟動hdfs網頁端
192.168.27.100:8088			#啟動yarn網頁端
           
hadoop完全分布式叢集配置
hadoop完全分布式叢集配置

啟動成功後要想知道如何運作java代碼,請點選完全分布式hadoop運作java代碼執行個體