Hadoop叢集搭建(一)

俗人的淺吟^ω^發表於2020-10-02

Ⅰ 前言

最近由於硬碟垃圾檔案太多,圖方便直接恢復出廠清空了所有盤檔案,想著重灌一次虛擬機器可以順便寫一個安裝心得還有教程,於是寫了包括本文的接下來幾個部落格,該系列部落格將會手把手搭建hadoop叢集及其常用元件,記錄全過程並指出部分常見錯誤

Ⅱ 搭建虛擬機器準備(附帶下載連結)

我們首先需要準備一些基本的軟體用於搭建叢集

一.VMware

VMware Workstation(中文名“威睿工作站”)是一款功能強大的桌面虛擬計算機軟體,提供使用者可在單一的桌面上同時執行不同的作業系統.我們需要下載這個平臺用於搭建虛擬機器,在下面連結中下載完成後自行安裝好。
(以下給出下載連結)
VMware Station pro 16.0.0 下載連結
密碼:geigeguanzhu
至於啟用碼,搜尋一下,網上一大把都可以隨便用(我的連結中的虛擬機器版本是16.0,啟用版本別搞錯了)

二.終端模擬器及檔案傳輸軟體

我們還需要一個終端模擬器和檔案傳輸軟體來進行對虛擬機器的控制和檔案傳輸,這裡我們使用Xmanager,他包含一組工具,其中含有Xshell(模擬器)和Xftp(傳輸軟體),此處要是有自己習慣的軟體的話也可以使用自己喜歡的,安裝即可,一樣的,下面給出連結,
Xmanager下載連結
密碼:zccy
1,解壓壓縮包
2、註冊碼.txt中獲取序列號。雙擊執行Xme5.exe,進行安裝

三.虛擬機器映象

我們還需要為虛擬機器準備系統映象,這裡選用適合初學者的centos7(linux)
Centos7映象下載地址
密碼:zccy

四.相關元件

hadoop生態圈還有很多的元件。例如Spark,Hbase,hive等等,因為篇幅問題,這些軟體在此處不介紹,給出下載連結,具體的安裝教程將會在之後的部落格給出,(本文需要使用連結中的hadoop,ant,eclipse,jdk)
叢集元件下載連結
密碼:zccy

Ⅲ.叢集安裝與配置教程

一,建立虛擬機器

步驟1
建立虛擬機器—>選擇典型—>下一步
步驟2
選擇稍後安裝—>點選下一步
步驟3
選擇Linux—>版本選擇Centos(7) 64位—>點選下一步
步驟4
修改名稱—>選擇儲存路徑—>下一步

步驟5
預設配置即可
步驟6
完成虛擬機器建立,此步可以自定義硬體(虛擬機器的記憶體可根據自身計算機的配置自行分配,一般使用預設即可)

二,安裝Centos7

步驟1
先掛載映象
步驟2
開啟虛擬機器
步驟3
選擇Install Centos7
步驟4
一段時間的載入後,進入語言選擇介面,選擇自己喜歡的語言,再點選繼續
步驟5
選擇安裝軟體
步驟6
選擇KDE視覺化介面(推薦,要是喜歡在命令列敲程式碼也可以選其他的)
步驟7
選擇自動分割槽—>開始安裝
步驟8
可以在等待時間裡設定一下root密碼和hadoop賬戶,完成後點選重啟即可
步驟9

常見問題

常見問題

三,虛擬機器網路配置(通過環回介面卡)

步驟1

如圖,使用root使用者登陸虛擬機器

本地物理機網路配置

特別提醒,這裡操作的是你自己的電腦,不是虛擬機器,開啟自己電腦的計算機管理,如圖所示點選,
選擇網路介面卡
選擇新增過時硬體
在這裡插入圖片描述
下一步
下一步
選擇軟體
下一步
選擇網路介面卡
下一步
選擇廠商為Microsoft,選擇型號為KM-TEST環回介面卡
沒有的話也可能這個
另一種型號
連續點選幾個下一步,然後完成。
接下來開啟“控制皮膚\網路和 Internet\網路連線”
找到剛剛新增的環回介面卡,然後進行如下操作
編輯IP

虛擬機器網路配置

如圖,在VMware中開啟虛擬網路編輯器
選擇
選擇更改設定
更改設定
新增一個VMnet2(沒有的話)
新增網路
將新建的VMnet2連線到KM迴環介面卡上
更改配置
然後修改一下虛擬機器的網路屬性
開啟
修改網路連結,確認儲存後重啟虛擬機器
如圖

虛擬機器網路卡配置

重啟完成後,再次登入root使用者
步驟2
在虛擬機器中點選右鍵,再點選console
輸入兩個命令:

cd /etc/sysconfig/network-scripts/
ls

我們看到了如下的介面
網路卡介面
輸入編輯網路卡的指令,並進行如下修改:

vi ifcfg-ens33

修改
修改後結果如下
修改完成
輸入命令:

service network restart

如果結果和下圖一樣,則執行成功
成功
成功了就關機就是簡單粗暴

克隆虛擬機器

其實除了通過VMware克隆,還可以在本地檔案系統找到虛擬機器根目錄,直接複製貼上虛擬機器,但這種方法不做推薦(能按兩下解決的事,整那麼複雜幹嘛)
如下圖,依次點選
如圖點選
複製當前狀態

建立完整克隆
修改名稱和儲存路徑

克隆完成,關閉

按箭頭順序依次點選,記住一定要重新生成,不然會沒網(老版本克隆不會自動重新生成)

之後開啟slave,修改他的網路卡配置(IP),方法上面講過

重啟網路卡


相同方法再克隆一個Slave2

配置主機名及hosts列表

在Master中輸入指令

hostnamectl set-hostname master


在slave中輸入指令

hostnamectl set-hostname slave

在所有虛擬機器上配置hosts列表(否則會導致連線錯誤)

vi /etc/hosts

刪除其餘的配置,向其中新增主節點以及從節點資訊(如圖)

設定免金鑰登入

首先在三個虛擬機器都輸入指令

ssh-keygen –t rsa

連續點選幾個回車
然後回到master上,繼續輸入指令

cd  .ssh
cp id_rsa.pub authorized_keys
scp -p id_rsa.pub root@slave:/root/.ssh/authorized_keys
scp -p id_rsa.pub root@slave2:/root/.ssh/authorized_keys

注意,最後兩步需要輸入密碼,請一步一步執行,不要直接複製全部
最後回到兩個slave上輸入指令

cd .ssh
chmod 600 authorized_keys


如圖,即成功

關閉防火牆

關閉虛擬機器防火牆

systemctl stop firewalld.service #停止firewall  
systemctl disable firewalld.service #禁止firewall開機啟動  

關閉物理機防火牆(ping不通物理機再關)

驗證網路

將下面幾行填入/etc/hosts檔案中(根據自己配的IP地址)
192.168.1.2 master
192.168.1.3 slave
192.168.1.4 slave2
使用ping命令檢視網路

我們可以看到三個虛擬機器之間是可以互ping的,接著我們試一試ping 192.168.1.1(物理機ip)

那我們再試試外網,如果Ping通,結果如下
(
注:僅使用本教程的迴環介面卡是無法聯網的,需要再連線一個新的網路卡連線外網,方法在我的另一個部落格(裡面還有常見的幾種網路配置錯誤的解決方法)
傳送門:虛擬機器ping不通的幾種常見解決方法

如圖,也是可以的,

Ⅳ,安裝hadoop

做好了準備,我們開始正式進入hadoop叢集安裝
首先開啟Xmanager中的Xshell
如圖,建立一個新會話
接受並儲存
輸入root使用者名稱(勾選記住使用者名稱)(之後輸入自己的密碼)

出現這樣的畫面就說明連線成功
同樣地,再設兩個虛擬機器會話

一樣連線上
在這裡插入圖片描述
開啟Xftp

安裝jdk

將jdk還有hadoop傳給虛擬機器(幾個虛擬機器都傳)

(確定在根目錄下)建立一個jdk目錄(三個虛擬機器同步),並解壓jdk到這個資料夾,(順便建立一個hadoopdata目錄)

mkdir jdk
tar  -xvf  jdk-8u144-linux-x64.tar.gz -C /root/jdk


然後我們會看到命令列視窗開始duang duang duang地彈東西,等解壓完了。我們看一看目錄

ls /root/jdk


解壓完成,我們配置一下jdk路徑(保證在root目錄下)

vi ./.bash_profile

編輯內容如下

export JAVA_HOME=/root/jdk/jdk1.8.0_144/
export PATH=$JAVA_HOME/bin:$PATH

編輯完成後,重新載入,輸入下列指令

source .bash_profile

再檢視jdk版本

java -version


再次提醒,三個虛擬機器都要設定

這裡我們說一下.bash_profile檔案,這是一個配置路徑的檔案,還有一個效果相同的檔案(在/etc)profile,這裡我們之所以使用.bash_profile的原因是/etc/profile是預設配置檔案,我們可以把我們的路徑資訊放在.bash_profile中,就可以與系統配置檔案錯開

提示:JAVAHOME是自己設定的jdk路徑(跟著我做的檔案跟我一樣就行)

安裝hadoop

解壓到指定資料夾

tar -xvf hadoop-2.7.7.tar.gz  

配置環境變數 hadoop-env.sh

輸入指令

vi ./hadoop-2.7.7/etc/hadoop/hadoop-env.sh 

找到配置檔案中的JAVA_HOME,新增自己的jdk路徑

完成

配置環境變數 yarn-env.sh

輸入指令

vi  ./hadoop-2.7.7/etc/hadoop/yarn-env.sh

同樣的,修改其中的JAVA_HOME

完成

配置核心元件core-site.xml

輸入指令

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

在檔案末尾的 configuration 之間新增下列內容

	<property> 
		<name>fs.defaultFS</name> 
		<value>hdfs://master:9000</value> 
	</property> 
	<property> 
		<name>hadoop.tmp.dir</name> 
		<value>/root/hadoopdata</value> 
	</property> 

結果如下

完成

配置檔案系統 hdfs-site.xml

輸入指令

vi  ./hadoop-2.7.7/etc/hadoop/hdfs-site.xml

在檔案末尾的 configuration 之間新增下列內容

<property> 
<name>dfs.replication</name> 
<value>1</value> 
</property>

結果如下

配置檔案系統 yarn-site.xml

輸入指令

  vi  ./hadoop-2.7.7/etc/hadoop/yarn-site.xml

在檔案末尾的 configuration 之間新增下列內容

<property> 
<name>yarn.nodemanager.aux-services</name> 
<value>mapreduce_shuffle</value> 
</property> 
<property> 
<name>yarn.resourcemanager.address</name> 
<value>master:8040</value> 
</property> 
<property> 
<name>yarn.resourcemanager.scheduler.address</name> 
<value>master:8030</value> 
</property> 
<property> 
<name>yarn.resourcemanager.resource-tracker.address</name>
 <value>master:8025</value> 
</property> 
<property> 
<name>yarn.resourcemanager.admin.address</name> 
<value>master:8141</value> 
</property> 
<property> 
<name>yarn.resourcemanager.webapp.address</name> 
<value>master:8088</value> 
</property>

結果如下

配置計算框架 mapred-site.xml

輸入指令

cd ./hadoop-2.7.7/etc/hadoop/
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

在檔案末尾的 configuration 之間新增下列內容

<property> 
<name>mapreduce.framework.name</name> 
<value>yarn</value> 
</property> 

結果如下:
、

配置slaves檔案

vi slaves

把localhost改成slave,slave2

在根目錄複製slave

scp -r hadoop-2.7.7 root@slave:~/  
scp -r hadoop-2.7.7 root@slave2:~/  

配置hadoop啟動系統環境變數

向.bash_profile 新增hadoop配置資訊
vi .bash_profile

export HADOOP_HOME=/root/hadoop-2.7.7
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

結果如下

編輯完成後,重新載入,輸入下列指令

source .bash_profile

啟動Hadoop叢集

格式化檔案系統

hdfs namenode -format

啟動Hadoop

cd hadoop-2.7.7/sbin
./start-dfs.sh
./start-yarn.sh

jps檢視執行情況,如圖所示,即成功(namenode啟動)

開啟瀏覽器,在位址列中輸入 http://master:50070/檢視節點情況,若如圖,則配置成功

好了,到這偽分散式叢集就搭建完成了

叢集(節點)無法啟動,可以參考我的另一篇部落格
這是傳送門:虛擬機器節點啟動異常的解決方法

web頁面無法顯示datanode節點資訊,可以參考我的另一篇部落格
這是傳送門:hadoop叢集web頁面無法顯示節點資訊的解決方法

Ⅴ,小結

安裝hadoop叢集是學習是學習haoop叢集的第一步,如果出現了什麼問題歡迎在評論區留言,互相討論,下一篇將會介紹hadoop叢集上eclipse(附帶scala配置)的安裝和使用,以及spark安裝,如果這篇博有幫到你,請在下文點個贊呦!

相關文章