您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么搭建虛擬機(jī)組成Hadoop集群”,在日常操作中,相信很多人在怎么搭建虛擬機(jī)組成Hadoop集群?jiǎn)栴}上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”怎么搭建虛擬機(jī)組成Hadoop集群”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!
完全分布模式是比本地模式與偽分布模式更加復(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
需要使用到三臺(tái)虛擬機(jī),其中一臺(tái)為Master
節(jié)點(diǎn),兩臺(tái)Worker
節(jié)點(diǎn),首先安裝虛擬機(jī)并配置環(huán)境,最后進(jìn)行測(cè)試。
使用VirtualBox
進(jìn)行虛擬機(jī)的安裝,先去CentOS
官網(wǎng)下載最新版本的鏡像:
這里有三種不同的鏡像:
boot
:網(wǎng)絡(luò)安裝版
dvd1
:完整版
minimal
:最小化安裝版
這里為了方便選擇最小化安裝版的,也就是不帶GUI
的。
下載后,打開(kāi)Virtual Box
并點(diǎn)擊New
,選擇專家模式
:
命名為CentOSMaster
,作為Master
節(jié)點(diǎn),并且分配內(nèi)存,這里是1G,如果覺(jué)得自己內(nèi)存大的可以2G:
磁盤30G足夠,其他可以保持默認(rèn):
創(chuàng)建好后從設(shè)置中的存儲(chǔ)中,選擇下載的鏡像:
啟動(dòng)后會(huì)提示選擇啟動(dòng)盤,確定即可:
好了之后會(huì)出現(xiàn)如下提示畫(huà)面,選擇第一個(gè)安裝:
等待一會(huì)后進(jìn)入安裝界面:
接下來(lái)對(duì)安裝位置以及時(shí)區(qū)進(jìn)行配置,首先選擇安裝位置:
由于是虛擬的單個(gè)空磁盤,選擇自動(dòng)分區(qū)即可:
時(shí)區(qū)這里可以選擇中國(guó)的上海:
接著選擇網(wǎng)絡(luò),首先修改主機(jī)名為master
:
接著點(diǎn)擊Configure
:
添加ip
地址以及DNS
服務(wù)器,ip
地址可以參考本機(jī),比如筆者的機(jī)器本地ip
為192.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
等)
點(diǎn)擊Save
后應(yīng)用主機(jī)名并開(kāi)啟:
沒(méi)問(wèn)題的話就可以安裝了:
安裝的時(shí)候設(shè)置root
用戶的密碼以及創(chuàng)建用戶:
用戶這里采用一個(gè)叫hadoopuser
的用戶,后面的操作都直接基于該用戶:
等待一段時(shí)間后安裝完成重啟即可。
在啟動(dòng)之前首先把原來(lái)的鏡像去掉:
啟動(dòng)后是黑框界面:
登錄剛才創(chuàng)建的hadoopuser
用戶即可。
ssh
連接虛擬機(jī)默認(rèn)的話是不能連接外網(wǎng)的,需要在菜單欄中的Devices
中選擇Network
,設(shè)置為Bridged Adapter
(橋接模式):
使用ping
測(cè)試:
接著可以測(cè)試能否ping
通本地機(jī)器:
通了之后可以通過(guò)ssh
連接虛擬機(jī),像平時(shí)操作服務(wù)器一樣,在本地終端中連接虛擬機(jī),首先添加指紋:
接著輸入密碼連接即可:
如果想偷懶可以使用密鑰連接的方式,在本地機(jī)器中:
ssh-keygen -t ed25519 -a 100 ssh-copy-id -i ~/.ssh/id_ed25519.pub hadoopuser@192.168.1.8
基本環(huán)境搭建就是安裝JDK
以及Hadoop
,使用scp
上傳OpenJDK
以及Hadoop
。
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è)試:
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目錄
因?yàn)樾枰粋€(gè)Master
節(jié)點(diǎn)以及兩個(gè)Worker
節(jié)點(diǎn),將Master
節(jié)點(diǎn)關(guān)機(jī),并選擇配置好的CentOSMaster
,右鍵進(jìn)行克隆:
并選擇完全克?。?/p>
克隆出CentOSWorker1
以及CentOSWorker2
。
ip
設(shè)置這里的兩個(gè)Worker
節(jié)點(diǎn)以Worker1
以及Worker2
命名,首先操作Worker1
,修改主機(jī)名:
sudo vim /etc/hostname # 輸入 # worker1
對(duì)于ip
,由于Master
節(jié)點(diǎn)的ip
為192.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
操作。
Host
設(shè)置需要在Master
以及Worker
節(jié)點(diǎn)進(jìn)行Host
設(shè)置:
Master
節(jié)點(diǎn)sudo vim /etc/hosts # 添加 192.168.1.9 worker1 # 與上面的ip對(duì)應(yīng)一致 192.168.1.10 worker2
Worker1
節(jié)點(diǎn)sudo vim /etc/hosts # 添加 192.168.1.8 master 192.168.1.10 worker2
Worker2
節(jié)點(diǎn)sudo vim /etc/hosts # 添加 192.168.1.8 master 192.168.1.9 worker1
ping
測(cè)試在三臺(tái)虛擬機(jī)中的其中一臺(tái)ping
另外兩臺(tái)的ip
或者主機(jī)名,測(cè)試通過(guò)后就可以進(jìn)行下一步了,這里使用Worker1
節(jié)點(diǎn)測(cè)試:
ssh
sshd
服務(wù)需要在三個(gè)節(jié)點(diǎn)(包括自身)之間配置ssh
無(wú)密碼(密鑰)連接,首先使用
systemctl status sshd
檢查sshd
服務(wù)是否開(kāi)啟,沒(méi)開(kāi)啟的使用
systemctl start sshd
開(kāi)啟。
三個(gè)節(jié)點(diǎn)都進(jìn)行如下操作:
ssh-keygen -t ed25519 -a 100 ssh-copy-id master ssh-copy-id worker1 ssh-copy-id worker2
在其中一個(gè)節(jié)點(diǎn)中直接ssh
連接其他節(jié)點(diǎn),無(wú)需密碼即可登錄,比如在Master
節(jié)點(diǎn)中:
ssh master # 都是hadoopuser用戶,所以省略了用戶 ssh worker1 ssh worker2
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
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.defaultFS
:NameNode
地址
hadoop.tmp.dir
:Hadoop
臨時(shí)目錄
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
的目錄,存放NameNode
的metadata
dfs.datanode.data.dir
:保存HDFS
數(shù)據(jù)的目錄,存放DataNode
的多個(gè)數(shù)據(jù)塊
dfs.replication
:HDFS
存儲(chǔ)的臨時(shí)備份數(shù)量,有兩個(gè)Worker
節(jié)點(diǎn),因此數(shù)值為2
workers
最后修改workers
,輸入(與上面設(shè)置的主機(jī)名一致):
worker1 worker2
把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/
HDFS
格式化并啟動(dòng)在Master
節(jié)點(diǎn)中:
cd /usr/local/hadoop bin/hdfs namenode -format sbin/start-dfs.sh
運(yùn)行后可以通過(guò)jps
命令查看:
在Worker
節(jié)點(diǎn)中:
瀏覽器輸入:
master:9870 # 如果沒(méi)有修改本機(jī)Host可以輸入 # 192.168.1.8:9870
但是。。。
本以為做了這么多能看到成果了。
然后檢查過(guò)了一遍本機(jī)+虛擬機(jī)Host
,還有Hadoop
的配置文件,都沒(méi)有問(wèn)題。
最后,
才定位到問(wèn)題是
防火墻。
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
:
則表示沒(méi)有開(kāi)放,手動(dòng)開(kāi)放即可:
sudo firewall-cmd --add-port=9870/tcp --permanent sudo firewall-cmd --reload # 使其生效
再次在瀏覽器輸入:
master:9870 # 如果沒(méi)有修改本地Host # 192.168.1.8:9870
可以看到一個(gè)友好的頁(yè)面了:
但是,有一個(gè)問(wèn)題就是這里沒(méi)有顯示Worker
節(jié)點(diǎn),上圖中的Live Nodes
數(shù)目為0 ,而Datanodes
這里什么也沒(méi)有顯示:
但是在Worker
節(jié)點(diǎn)中的確可以看到有Datanode
的進(jìn)程了:
查看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)題:
回到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)了:
YARN
YARN
配置在兩個(gè)Worker
節(jié)點(diǎn)中修改/usr/local/hadoop/etc/hadoop/yarn-site.xml
:
<property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property>
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
瀏覽器輸入:
master:8088 # 或 # 192.168.1.8:8088
應(yīng)該就可以訪問(wèn)如下頁(yè)面了:
同樣道理沒(méi)有看到Worker
節(jié)點(diǎn),查看Worker
節(jié)點(diǎn)的日志,發(fā)現(xiàn)也是端口的問(wèn)題:
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
集群正式搭建完成。
到此,關(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í)用的文章!
免責(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)容。