目錄
前言
一、問題重現(xiàn)
1、查詢Hadoop版本
?2、集群啟動Hadoop
二、問題分析
三、Hadoop3.x的集群配置
1、停止Hadoop服務(wù)
2、配置workers
3、從節(jié)點檢測
4、WebUI監(jiān)控
總結(jié)
前言
????????在大數(shù)據(jù)的世界里,Hadoop絕對是一個值得學習的框架。關(guān)于Hadoop的知識,有很多博主和視頻博主都做了很詳細的教程,感興趣的朋友甚至可以去官網(wǎng)看看。比如其分布式架構(gòu)的實現(xiàn),在這里都不在贅述,大家可以通過多種途徑進行學習。
????????這篇博客出現(xiàn)得場景緣由是最近基于Hbase2.4.11搭建完全分布式集群,集群的節(jié)點是3。至于為什么是3,主要是機器有限,而且是同一臺物理主機上進行虛擬搭建的。Hbase的底層存儲是存放在Hdfs中的,由此必須要安裝Hadoop。
????????眾所周知,在完全分布式環(huán)境下,我們可以只在Master節(jié)點上直接運行start-all.sh命令,整個集群都會自動啟動。本文描述的是在Hadoop3.1.3的完全分布式環(huán)境下,slave節(jié)點的DataNode節(jié)點未能成功啟動的問題以及通過修改配置來解決的辦法,希望能幫助到遇到這個問題的朋友。請注意,由于不同的版本,可能解決辦法不一致,請謹慎參考。博主就遇到過,在Hadoop2.x的配置和Hadoop3.x的配置不一致的問題。博文的參考僅限于Hadoop3.x,如果您使用的不是這個系列的版本,那么您可以去別的地方尋找答案。
一、問題重現(xiàn)
1、查詢Hadoop版本
????????使用管理賬號登錄到系統(tǒng),使用hadoop version可以查看版本。
[root@master bin]# hadoop version
?????????可以看到輸出如下:
Hadoop 3.1.3
Source code repository https://gitbox.apache.org/repos/asf/hadoop.git -r ba631c436b806728f8ec2f54ab1e289526c90579
Compiled by ztang on 2019-09-12T02:47Z
Compiled with protoc 2.5.0
From source with checksum ec785077c385118ac91aadde5ec9799
This command was run using /software/hadoop/share/hadoop/common/hadoop-common-3.1.3.jar
?2、集群啟動Hadoop
?????????登錄master節(jié)點,進入hadoop的sbin目錄,啟動集群,參考命令如下:
[root@master bin]# cd /software/hadoop/sbin
[root@master sbin]# ./start-all.sh
????????這里請注意,hadoop的安裝目錄,請根據(jù)實際目錄進行修改,否則會影響運行。通常以上命令后會有以下輸出。輸出以下姓名就表示已經(jīng)完成了hadoop的啟動。
Starting namenodes on [master]
上一次登錄:三 12月 13 11:31:20 CST 2023pts/0 上
Starting datanodes
上一次登錄:三 12月 13 11:31:39 CST 2023pts/0 上
Starting secondary namenodes [master]
上一次登錄:三 12月 13 11:31:41 CST 2023pts/0 上
Starting resourcemanager
上一次登錄:三 12月 13 11:31:44 CST 2023pts/0 上
Starting nodemanagers
上一次登錄:三 12月 13 11:31:48 CST 2023pts/0 上
????????如果是正常的集群啟動,那么master、slave1、slave2三臺機器上都會有DataNode進程??梢苑謩e在三臺機器上進行進程查詢,這里使用jps命令。
????????Master進程如下:
[root@master sbin]# jps
9351 NameNode
1608 QuorumPeerMain
10537 Jps
9755 SecondaryNameNode
10027 ResourceManager
10365 NodeManager
9535 DataNode
????????我們可以發(fā)現(xiàn),Master上,NodeManager、NameNode、DataNode服務(wù)都是正常的。然后登錄到slave1和slave2兩臺服務(wù)器上,同樣使用jps命令查看機器進程。
slave1上進程
[root@slave1 hadoop]# jps
4113 Jps
1605 QuorumPeerMain
????????同樣的,在slave2上也是一樣的問題,從節(jié)點的DataNode并沒有啟動,這樣子相當于集群啟動失敗。此時只有master一個節(jié)點進行對外提供服務(wù),顯然這不是很妙。
二、問題分析
????????其實出現(xiàn)這個問題的原因也比較簡單,還是集群設(shè)置的問題。在進行大數(shù)據(jù)各個組件的學習時,一定要注意版本,不同的版本配置的方式不一樣,有可能配置目錄或者配置文件修改修改了。因此最好是按照官網(wǎng)的說明進行配置最好。本文描述的問題,是因為在Hadoop3.x版本中,集群配置的設(shè)置文件是workers而不是slaves,slaves應該是之前的版本的集群配置。
三、Hadoop3.x的集群配置
1、停止Hadoop服務(wù)
????????執(zhí)行以下命令,停止Hadoop服務(wù)。
[root@master sbin]# ./stop-all.sh
Stopping namenodes on [master]
上一次登錄:三 12月 13 11:08:17 CST 2023pts/0 上
Stopping datanodes
上一次登錄:三 12月 13 11:31:13 CST 2023pts/0 上
Stopping secondary namenodes [master]
上一次登錄:三 12月 13 11:31:14 CST 2023pts/0 上
Stopping nodemanagers
上一次登錄:三 12月 13 11:31:16 CST 2023pts/0 上
Stopping resourcemanager
上一次登錄:三 12月 13 11:31:18 CST 2023pts/0 上
2、配置workers
capacity-scheduler.xml hadoop-env.cmd hadoop-user-functions.sh.example httpfs-signature.secret kms-log4j.properties mapred-env.sh slaves workers yarn-site.xml
configuration.xsl hadoop-env.sh hdfs-site.xml httpfs-site.xml kms-site.xml mapred-queues.xml.template ssl-client.xml.example yarn-env.cmd
container-executor.cfg hadoop-metrics2.properties httpfs-env.sh kms-acls.xml log4j.properties mapred-site.xml ssl-server.xml.example yarn-env.sh
core-site.xml hadoop-policy.xml httpfs-log4j.properties kms-env.sh mapred-env.cmd shellprofile.d user_ec_policies.xml.template yarnservice-log4j.properties
????????首先使用cat命令查看默認的配置,
cat workers
????????可以看到workers的內(nèi)容如下:
localhost
????????即默認的情況下,Hadoop在本機啟動,不加入分布式集群,因此無法隨著集群的啟動而啟動。所以我們要把機器加入到集群環(huán)境中,在workers文件中,將master、slave1、slave2追加進去。
Vi workers
master
slave1
slave2
????????配置完成后,可以使用scp命令復制到slave1和slave2節(jié)點,也可以使用同樣的方式進行修改。修改完成后保存相應配置。最后到master的機器上,重啟集群。
[root@master sbin]# ./start-all.sh
Starting namenodes on [master]
上一次登錄:三 12月 13 11:31:20 CST 2023pts/0 上
Starting datanodes
上一次登錄:三 12月 13 11:31:39 CST 2023pts/0 上
Starting secondary namenodes [master]
上一次登錄:三 12月 13 11:31:41 CST 2023pts/0 上
Starting resourcemanager
上一次登錄:三 12月 13 11:31:44 CST 2023pts/0 上
Starting nodemanagers
上一次登錄:三 12月 13 11:31:48 CST 2023pts/0 上
3、從節(jié)點檢測
????????在master節(jié)點上運行start-all.sh后,分別在slave1、slave2兩臺機器上進行進程檢測。執(zhí)行命令如下:
[root@slave1 hadoop]# jps
3841 DataNode
4145 Jps
1605 QuorumPeerMain
3960 NodeManager
????????我們發(fā)現(xiàn),DataNode和NodeManager進程都已經(jīng)正常啟動,slave2也是一樣的。由此,Hadoop3.x集群服務(wù)完全啟動。
4、WebUI監(jiān)控
????????除了使用命令行的方式監(jiān)控hadoop,其內(nèi)部也提供了webui的監(jiān)控方式。
文章來源:http://www.zghlxwxcb.cn/news/detail-760591.html
總結(jié)
?????????以上就是本文的主要內(nèi)容,本文描述的是在Hadoop3.1.3的完全分布式環(huán)境下,slave節(jié)點的DataNode節(jié)點未能成功啟動的問題以及通過修改配置來解決的辦法,希望能幫助到遇到這個問題的朋友。行文倉促,有很多不當之處,請朋友們批評指正。文章來源地址http://www.zghlxwxcb.cn/news/detail-760591.html
到了這里,關(guān)于Hadoop3.x完全分布式模式下slaveDataNode節(jié)點未啟動調(diào)整的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!