溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么搭建虛擬機(jī)組成Hadoop集群

發(fā)布時(shí)間:2021-12-09 14:19:20 來(lái)源:億速云 閱讀:140 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要介紹“怎么搭建虛擬機(jī)組成Hadoop集群”,在日常操作中,相信很多人在怎么搭建虛擬機(jī)組成Hadoop集群?jiǎn)栴}上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么搭建虛擬機(jī)組成Hadoop集群”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

1 完全分布模式

完全分布模式是比本地模式與偽分布模式更加復(fù)雜的模式,真正利用多臺(tái)Linux主機(jī)來(lái)進(jìn)行部署Hadoop,對(duì)集群進(jìn)行規(guī)劃,使得Hadoop各個(gè)模塊分別部署在不同的多臺(tái)機(jī)器上,這篇文章介紹的是通過(guò)三臺(tái)虛擬機(jī)進(jìn)行集群配置的方式,主要步驟為:

  • 準(zhǔn)備虛擬機(jī):準(zhǔn)備虛擬機(jī)基本環(huán)境

  • ip+Host配置:手動(dòng)設(shè)置虛擬機(jī)ip以及主機(jī)名,需要確保三臺(tái)虛擬機(jī)能互相ping

  • ssh配置:生成密鑰對(duì)后復(fù)制公鑰到三臺(tái)虛擬機(jī)中,使其能夠?qū)崿F(xiàn)無(wú)密碼相互連接

  • Hadoop配置:core-site.xml+hdfs-site.xml+workers

  • YARN配置:yarn-site.xml

2 虛擬機(jī)安裝

需要使用到三臺(tái)虛擬機(jī),其中一臺(tái)為Master節(jié)點(diǎn),兩臺(tái)Worker節(jié)點(diǎn),首先安裝虛擬機(jī)并配置環(huán)境,最后進(jìn)行測(cè)試。

2.1 鏡像下載

使用VirtualBox進(jìn)行虛擬機(jī)的安裝,先去CentOS官網(wǎng)下載最新版本的鏡像:

怎么搭建虛擬機(jī)組成Hadoop集群

這里有三種不同的鏡像:

  • boot:網(wǎng)絡(luò)安裝版

  • dvd1:完整版

  • minimal:最小化安裝版

這里為了方便選擇最小化安裝版的,也就是不帶GUI的。

2.2 安裝

下載后,打開(kāi)Virtual Box并點(diǎn)擊New,選擇專家模式

怎么搭建虛擬機(jī)組成Hadoop集群

命名為CentOSMaster,作為Master節(jié)點(diǎn),并且分配內(nèi)存,這里是1G,如果覺(jué)得自己內(nèi)存大的可以2G:

怎么搭建虛擬機(jī)組成Hadoop集群

磁盤30G足夠,其他可以保持默認(rèn):

怎么搭建虛擬機(jī)組成Hadoop集群

創(chuàng)建好后從設(shè)置中的存儲(chǔ)中,選擇下載的鏡像:

怎么搭建虛擬機(jī)組成Hadoop集群

啟動(dòng)后會(huì)提示選擇啟動(dòng)盤,確定即可:

怎么搭建虛擬機(jī)組成Hadoop集群

好了之后會(huì)出現(xiàn)如下提示畫(huà)面,選擇第一個(gè)安裝:

怎么搭建虛擬機(jī)組成Hadoop集群

等待一會(huì)后進(jìn)入安裝界面:

怎么搭建虛擬機(jī)組成Hadoop集群

接下來(lái)對(duì)安裝位置以及時(shí)區(qū)進(jìn)行配置,首先選擇安裝位置:

怎么搭建虛擬機(jī)組成Hadoop集群

由于是虛擬的單個(gè)空磁盤,選擇自動(dòng)分區(qū)即可:

怎么搭建虛擬機(jī)組成Hadoop集群

時(shí)區(qū)這里可以選擇中國(guó)的上海:

怎么搭建虛擬機(jī)組成Hadoop集群

接著選擇網(wǎng)絡(luò),首先修改主機(jī)名為master

怎么搭建虛擬機(jī)組成Hadoop集群

接著點(diǎn)擊Configure

怎么搭建虛擬機(jī)組成Hadoop集群

添加ip地址以及DNS服務(wù)器,ip地址可以參考本機(jī),比如筆者的機(jī)器本地ip192.168.1.7,則:

  • 虛擬機(jī)的ip可以填192.168.1.8

  • 子網(wǎng)掩碼一般為255.255.255.0

  • 默認(rèn)網(wǎng)關(guān)為192.168.1.1

  • DNS服務(wù)器為114.114.114.114(當(dāng)然也可以換其他的公共DNS比如阿里的223.5.5.5、百度的180.76.76.76等)

怎么搭建虛擬機(jī)組成Hadoop集群

點(diǎn)擊Save后應(yīng)用主機(jī)名并開(kāi)啟:

怎么搭建虛擬機(jī)組成Hadoop集群

沒(méi)問(wèn)題的話就可以安裝了:

怎么搭建虛擬機(jī)組成Hadoop集群

安裝的時(shí)候設(shè)置root用戶的密碼以及創(chuàng)建用戶:

怎么搭建虛擬機(jī)組成Hadoop集群

用戶這里采用一個(gè)叫hadoopuser的用戶,后面的操作都直接基于該用戶:

怎么搭建虛擬機(jī)組成Hadoop集群

等待一段時(shí)間后安裝完成重啟即可。

2.3 啟動(dòng)

在啟動(dòng)之前首先把原來(lái)的鏡像去掉:

怎么搭建虛擬機(jī)組成Hadoop集群

啟動(dòng)后是黑框界面:

怎么搭建虛擬機(jī)組成Hadoop集群

登錄剛才創(chuàng)建的hadoopuser用戶即可。

3 ssh連接虛擬機(jī)

默認(rèn)的話是不能連接外網(wǎng)的,需要在菜單欄中的Devices中選擇Network,設(shè)置為Bridged Adapter(橋接模式):

怎么搭建虛擬機(jī)組成Hadoop集群

使用ping測(cè)試:

怎么搭建虛擬機(jī)組成Hadoop集群

接著可以測(cè)試能否ping通本地機(jī)器:

怎么搭建虛擬機(jī)組成Hadoop集群

通了之后可以通過(guò)ssh連接虛擬機(jī),像平時(shí)操作服務(wù)器一樣,在本地終端中連接虛擬機(jī),首先添加指紋:

怎么搭建虛擬機(jī)組成Hadoop集群

接著輸入密碼連接即可:

怎么搭建虛擬機(jī)組成Hadoop集群

如果想偷懶可以使用密鑰連接的方式,在本地機(jī)器中:

ssh-keygen -t ed25519 -a 100
ssh-copy-id -i ~/.ssh/id_ed25519.pub hadoopuser@192.168.1.8

4 基本環(huán)境搭建

基本環(huán)境搭建就是安裝JDK以及Hadoop,使用scp上傳OpenJDK以及Hadoop。

4.1 JDK

首先去下載OpenJDK,然后在本地機(jī)器上使用scp上傳:

scp openjdk-11+28_linux-x64_bin.tar.gz hadoopuser@192.168.1.8:/home/hadoopuser

接著在本地上切換到連接虛擬機(jī)的ssh中,

cd ~
tar -zxvf openjdk-11+28_linux-x64_bin.tar.gz 
sudo mv jdk-11 /usr/local/java

下一步是編輯/etc/profile,添加bin到環(huán)境變量中,在末尾添加:

sudo vim /etc/profile
# 沒(méi)有vim請(qǐng)使用vi
# 或安裝:sudo yum install vim
# 添加
export PATH=$PATH:/usr/local/java/bin

然后:

. /etc/profile

測(cè)試:

怎么搭建虛擬機(jī)組成Hadoop集群

4.2 Hadoop

Hadoop的壓縮包scp上傳到虛擬機(jī)后,解壓并移動(dòng)到/usr/local

scp hadoop-3.3.0.tar.gz hadoopuser@192.168.1.8:/home/hadoopuser

虛擬機(jī)ssh終端:

cd ~
tar -xvf hadoop-3.3.0.tar.gz
sudo mv hadoop-3.3.0 /usr/local/hadoop

同時(shí)修改etc/hadoop/hadoop-env.sh配置文件,填入Java路徑:

sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# 填入
export JAVA_HOME=/usr/local/java # 修改為您的Java目錄

5 克隆

因?yàn)樾枰粋€(gè)Master節(jié)點(diǎn)以及兩個(gè)Worker節(jié)點(diǎn),將Master節(jié)點(diǎn)關(guān)機(jī),并選擇配置好的CentOSMaster,右鍵進(jìn)行克隆:

怎么搭建虛擬機(jī)組成Hadoop集群

并選擇完全克?。?/p>

怎么搭建虛擬機(jī)組成Hadoop集群

克隆出CentOSWorker1以及CentOSWorker2

6 主機(jī)名+ip設(shè)置

這里的兩個(gè)Worker節(jié)點(diǎn)以Worker1以及Worker2命名,首先操作Worker1,修改主機(jī)名:

sudo vim /etc/hostname
# 輸入
# worker1

對(duì)于ip,由于Master節(jié)點(diǎn)的ip192.168.1.8,因此這里修改兩個(gè)Worker的節(jié)點(diǎn)分別為:

  • 192.168.1.9

  • 192.168.1.10

sudo vim /etc/sysconfig/network-scripts/ifcfg-xxxx # 該文件因人而異
# 修改IPADDR
IPADDR=192.168.1.9

修改完成后重啟Worker1,對(duì)Worker2進(jìn)行同樣的修改主機(jī)名以及ip操作。

7 Host設(shè)置

需要在Master以及Worker節(jié)點(diǎn)進(jìn)行Host設(shè)置:

7.1 Master節(jié)點(diǎn)

sudo vim /etc/hosts
# 添加
192.168.1.9 worker1 # 與上面的ip對(duì)應(yīng)一致
192.168.1.10 worker2

怎么搭建虛擬機(jī)組成Hadoop集群

7.2 Worker1節(jié)點(diǎn)

sudo vim /etc/hosts
# 添加
192.168.1.8 master
192.168.1.10 worker2

怎么搭建虛擬機(jī)組成Hadoop集群

7.3 Worker2節(jié)點(diǎn)

sudo vim /etc/hosts
# 添加
192.168.1.8 master
192.168.1.9 worker1

怎么搭建虛擬機(jī)組成Hadoop集群

7.4 互ping測(cè)試

在三臺(tái)虛擬機(jī)中的其中一臺(tái)ping另外兩臺(tái)的ip或者主機(jī)名,測(cè)試通過(guò)后就可以進(jìn)行下一步了,這里使用Worker1節(jié)點(diǎn)測(cè)試:

怎么搭建虛擬機(jī)組成Hadoop集群

怎么搭建虛擬機(jī)組成Hadoop集群

8 配置ssh

8.1 sshd服務(wù)

需要在三個(gè)節(jié)點(diǎn)(包括自身)之間配置ssh無(wú)密碼(密鑰)連接,首先使用

systemctl status sshd

檢查sshd服務(wù)是否開(kāi)啟,沒(méi)開(kāi)啟的使用

systemctl start sshd

開(kāi)啟。

8.2 復(fù)制公鑰

三個(gè)節(jié)點(diǎn)都進(jìn)行如下操作:

ssh-keygen -t ed25519 -a 100
ssh-copy-id master
ssh-copy-id worker1
ssh-copy-id worker2

8.3 測(cè)試

在其中一個(gè)節(jié)點(diǎn)中直接ssh連接其他節(jié)點(diǎn),無(wú)需密碼即可登錄,比如在Master節(jié)點(diǎn)中:

ssh master # 都是hadoopuser用戶,所以省略了用戶
ssh worker1
ssh worker2

9 Master節(jié)點(diǎn)Hadoop配置

Master節(jié)點(diǎn)中,修改以下三個(gè)配置文件:

  • HADOOP/etc/hadoop/core-site.xml

  • HADOOP/etc/hadoop/hdfs-site.xml

  • HADOOP/etc/hadoop/workers

9.1 core-site.xml

<configuration>
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://master:9000</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/usr/local/hadoop/data/tmp</value>
	</property>
</configuration>
  • fs.defaultFSNameNode地址

  • hadoop.tmp.dirHadoop臨時(shí)目錄

9.2 hdfs-site.xml

<configuration>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/usr/local/hadoop/data/namenode</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/usr/local/hadoop/data/datanode</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>2</value>
	</property>
</configuration>
  • dfs.namenode.name.dir:保存FSImage的目錄,存放NameNodemetadata

  • dfs.datanode.data.dir:保存HDFS數(shù)據(jù)的目錄,存放DataNode的多個(gè)數(shù)據(jù)塊

  • dfs.replicationHDFS存儲(chǔ)的臨時(shí)備份數(shù)量,有兩個(gè)Worker節(jié)點(diǎn),因此數(shù)值為2

9.3 workers

最后修改workers,輸入(與上面設(shè)置的主機(jī)名一致):

worker1
worker2

9.4 復(fù)制配置文件

Master節(jié)點(diǎn)的配置復(fù)制到Worker節(jié)點(diǎn):

scp /usr/local/hadoop/etc/hadoop/* worker1:/usr/local/hadoop/etc/hadoop/
scp /usr/local/hadoop/etc/hadoop/* worker2:/usr/local/hadoop/etc/hadoop/

10 HDFS格式化并啟動(dòng)

10.1 啟動(dòng)

Master節(jié)點(diǎn)中:

cd /usr/local/hadoop
bin/hdfs namenode -format
sbin/start-dfs.sh

運(yùn)行后可以通過(guò)jps命令查看:

怎么搭建虛擬機(jī)組成Hadoop集群

Worker節(jié)點(diǎn)中:

怎么搭建虛擬機(jī)組成Hadoop集群

怎么搭建虛擬機(jī)組成Hadoop集群

10.2 測(cè)試

瀏覽器輸入:

master:9870
# 如果沒(méi)有修改本機(jī)Host可以輸入
# 192.168.1.8:9870

但是。。。

怎么搭建虛擬機(jī)組成Hadoop集群

本以為做了這么多能看到成果了。

然后檢查過(guò)了一遍本機(jī)+虛擬機(jī)Host,還有Hadoop的配置文件,都沒(méi)有問(wèn)題。

最后,

才定位到問(wèn)題是

防火墻。

10.3 防火墻

CentOS8默認(rèn)開(kāi)啟了防火墻,可以使用:

systemctl status firewalld

查看防火墻狀態(tài)。

由于是通過(guò)9870端口訪問(wèn),首先查詢9870是否開(kāi)放,Master節(jié)點(diǎn)中輸入:

sudo firewall-cmd --query-port=9870/tcp
# 或
sudo firewall-cmd --list-ports

如果輸出為no

怎么搭建虛擬機(jī)組成Hadoop集群

則表示沒(méi)有開(kāi)放,手動(dòng)開(kāi)放即可:

sudo firewall-cmd --add-port=9870/tcp --permanent
sudo firewall-cmd --reload # 使其生效

怎么搭建虛擬機(jī)組成Hadoop集群

再次在瀏覽器輸入:

master:9870
# 如果沒(méi)有修改本地Host
# 192.168.1.8:9870

可以看到一個(gè)友好的頁(yè)面了:

怎么搭建虛擬機(jī)組成Hadoop集群

但是,有一個(gè)問(wèn)題就是這里沒(méi)有顯示Worker節(jié)點(diǎn),上圖中的Live Nodes數(shù)目為0 ,而Datanodes這里什么也沒(méi)有顯示:

怎么搭建虛擬機(jī)組成Hadoop集群

但是在Worker節(jié)點(diǎn)中的確可以看到有Datanode的進(jìn)程了:

怎么搭建虛擬機(jī)組成Hadoop集群

怎么搭建虛擬機(jī)組成Hadoop集群

查看Worker節(jié)點(diǎn)的日志(/usr/local/hadoop/logs/hadoop-hadoopuser-datanode-worker1.log)可以看到應(yīng)該是Master節(jié)點(diǎn)9000端口的沒(méi)有開(kāi)啟的問(wèn)題:

怎么搭建虛擬機(jī)組成Hadoop集群

回到Master節(jié)點(diǎn),先執(zhí)行stop-dfs.sh關(guān)閉,并開(kāi)放9000端口后執(zhí)行start-dfs.sh開(kāi)啟:

/usr/local/hadoop/sbin/stop-dfs.sh
sudo firewall-cmd --add-port=9000/tcp --permanent
sudo firewall-cmd --reload
/usr/local/hadoop/sbin/start-dfs.sh

再次在瀏覽器訪問(wèn):

master:9000
# 或
# 192.168.1.8:9000

這時(shí)候就可以看見(jiàn)Worker節(jié)點(diǎn)了:

怎么搭建虛擬機(jī)組成Hadoop集群

怎么搭建虛擬機(jī)組成Hadoop集群

11 配置YARN

11.1 YARN配置

在兩個(gè)Worker節(jié)點(diǎn)中修改/usr/local/hadoop/etc/hadoop/yarn-site.xml

<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>master</value>
</property>

11.2 開(kāi)啟YARN

Master節(jié)點(diǎn)中開(kāi)啟YARN

cd /usr/local/hadoop
sbin/start-yarn.sh

同時(shí)開(kāi)放8088端口為下面的測(cè)試做準(zhǔn)備:

sudo firewall-cmd --add-port=8088/tcp --permanent
sudo firewall-cmd --reload

11.3 測(cè)試

瀏覽器輸入:

master:8088
# 或
# 192.168.1.8:8088

應(yīng)該就可以訪問(wèn)如下頁(yè)面了:

怎么搭建虛擬機(jī)組成Hadoop集群

同樣道理沒(méi)有看到Worker節(jié)點(diǎn),查看Worker節(jié)點(diǎn)的日志,發(fā)現(xiàn)也是端口的問(wèn)題:

怎么搭建虛擬機(jī)組成Hadoop集群

Master節(jié)點(diǎn)先關(guān)閉YARN,開(kāi)放8031端口,并重啟YARN

/usr/local/hadoop/sbin/stop-yarn.sh
sudo firewall-cmd --add-port=8031/tcp --permanent
sudo firewall-cmd --reload
/usr/local/hadoop/sbin/start-yarn.sh

再次訪問(wèn):

master:8088
# 或
# 192.168.1.8:8088

就可以看到Worker節(jié)點(diǎn)了:

怎么搭建虛擬機(jī)組成Hadoop集群

怎么搭建虛擬機(jī)組成Hadoop集群

至此,虛擬機(jī)組成Hadoop集群正式搭建完成。

到此,關(guān)于“怎么搭建虛擬機(jī)組成Hadoop集群”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI