《大數(shù)據(jù)平臺(tái)構(gòu)建》 課件 項(xiàng)目四、Hadoop HA 集群部署_第1頁(yè)
《大數(shù)據(jù)平臺(tái)構(gòu)建》 課件 項(xiàng)目四、Hadoop HA 集群部署_第2頁(yè)
《大數(shù)據(jù)平臺(tái)構(gòu)建》 課件 項(xiàng)目四、Hadoop HA 集群部署_第3頁(yè)
《大數(shù)據(jù)平臺(tái)構(gòu)建》 課件 項(xiàng)目四、Hadoop HA 集群部署_第4頁(yè)
《大數(shù)據(jù)平臺(tái)構(gòu)建》 課件 項(xiàng)目四、Hadoop HA 集群部署_第5頁(yè)
已閱讀5頁(yè),還剩106頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

0102目錄任務(wù)1規(guī)劃HadoopHA集群任務(wù)2Zookeeper安裝與配置03任務(wù)3HDFSHA配置與啟動(dòng)04任務(wù)4YARNHA配置與啟動(dòng)任務(wù)1規(guī)劃HadoopHA集群1任務(wù)目標(biāo)1、能夠熟練完成HadoopHA服務(wù)器角色規(guī)劃2、能夠熟練完成HadoopHA離線安裝所需軟件的下載能力目標(biāo)1、了解HadoopHA基本概念2、了解HadoopHA原理知識(shí)目標(biāo)4

知識(shí)準(zhǔn)備5一、HadoopHA簡(jiǎn)介(一)什么是HAHA是HighAvailability的簡(jiǎn)寫,即高可用,指當(dāng)前工作中的機(jī)器宕機(jī)后,會(huì)自動(dòng)處理這個(gè)異常,并將工作無(wú)縫地轉(zhuǎn)移到其他備用機(jī)器上去,以來(lái)保證服務(wù)的高可用簡(jiǎn)言之,有兩臺(tái)機(jī)器,一臺(tái)工作,一臺(tái)備用,當(dāng)工作機(jī)宕機(jī)之后,備用機(jī)自動(dòng)接替(二)什么是HadoopHAHadoopHA集群模式是最常見(jiàn)的生產(chǎn)環(huán)境上的安裝部署方式實(shí)現(xiàn)高可用最關(guān)鍵的是消除單點(diǎn)故障,HadoopHA嚴(yán)格來(lái)說(shuō)應(yīng)該分成各個(gè)組件的HA機(jī)制,HadoopHA包括:HDFS的NameNodeHA和YARN的ResourceManagerHADataNode和NodeManager本身就是被設(shè)計(jì)為高可用的,不用對(duì)它們進(jìn)行特殊的高可用處理二、HadoopHA原理6HadoopYARNHA原理HadoopYARNHA是通過(guò)同時(shí)配置兩個(gè)或多個(gè)ResourceManager(RM)來(lái)解決HA問(wèn)題ResourceManagerHA是通過(guò)活動(dòng)/備用體系結(jié)構(gòu)實(shí)現(xiàn)的。在任何時(shí)候,其中一個(gè)RM處于活動(dòng)狀態(tài),并且一個(gè)或多個(gè)RM處于待機(jī)模式,等待在活動(dòng)發(fā)生任何事情時(shí)接管。轉(zhuǎn)換到活動(dòng)的觸發(fā)器來(lái)自管理員(通過(guò)CLI)或在啟用自動(dòng)故障轉(zhuǎn)移時(shí)通過(guò)集成的故障轉(zhuǎn)移控制器RM可以選擇嵌入基于Zookeeper的ActiveStandbyElector

,以決定哪個(gè)RM應(yīng)該是活動(dòng)的。當(dāng)活動(dòng)關(guān)閉或變得無(wú)響應(yīng)時(shí),另一個(gè)RM將自動(dòng)選擇為活動(dòng),然后接管注意:不需要像HDFS那樣運(yùn)行單獨(dú)的ZKFC守護(hù)程序,因?yàn)榍度朐赗M中的ActiveStandbyElector

充當(dāng)故障檢測(cè)器和領(lǐng)導(dǎo)者選舉器,而不是單獨(dú)的ZKFC守護(hù)程序HadoopHDFSHA原理HadoopHDFSHA(HighAvailable)通過(guò)同時(shí)配置兩個(gè)或多個(gè)NameNode來(lái)解決HA問(wèn)題分別叫ActiveNameNode和StandbyNameNode,StandbyNameNode作為熱備份,從而允許在機(jī)器發(fā)生故障時(shí)能夠快速進(jìn)行故障轉(zhuǎn)移在任何時(shí)間點(diǎn),只有一個(gè)NameNode節(jié)點(diǎn)處于活動(dòng)狀態(tài),而其他NameNode處于待機(jī)狀態(tài)ActiveNameNode負(fù)責(zé)群集中的所有客戶端操作,而StandbyNameNode只是充當(dāng)輔助角色,維護(hù)足夠的狀態(tài)以在必要時(shí)提供快速故障轉(zhuǎn)移7任務(wù)實(shí)施一、HadoopHA部署的服務(wù)器角色規(guī)劃master(IP:29)配置:2CPU、2G內(nèi)存、20G硬盤slave1(IP:30)配置:2CPU、2G內(nèi)存、20G硬盤slave2(IP:31)配置:2CPU、2G內(nèi)存、20G硬盤NameNode(Active)NameNode(StandBy)DataNodeDataNodeDataNodeResourceManager(Active)ResourceManager(StandBy)NodeManagerNodeManagerNodeManagerJobHistoryServerHadoopHA部署的服務(wù)器角色規(guī)劃ZKFCZKFC

ZookeeperZookeeperZookeeperJournalNodeJournalNodeJournalNode二、HadoopHA部署的離線安裝所需軟件包下載8項(xiàng)目所需軟件下載清單官方下載網(wǎng)址HadoopHA集群部署OpenEuler22.03LTS(everything完整版)/zh//zh/OpenEuler22.03LTS(DVDISO版本)/zh//zh/SecureCRT8.7.3/products/securecrt/JDK8/java/technologies/downloads/Hadoop3.3.4//docs/r3.3.4/Zookeeper-3.7.1//releases.html離線安裝Hadoop集群所需要的軟件下載清單及官方下載網(wǎng)址主講:方明清0102目錄任務(wù)1規(guī)劃HadoopHA集群任務(wù)2Zookeeper安裝與配置03任務(wù)3HDFSHA配置與啟動(dòng)04任務(wù)4YARNHA配置與啟動(dòng)任務(wù)2Zookeeper安裝與配置2任務(wù)目標(biāo)1、能夠熟練完成Zookeeper的安裝與配置2、能夠熟練完成Zookeeper集群的啟動(dòng)3、能夠熟練完成Zookeeper集群的驗(yàn)證能力目標(biāo)1、了解Zookeeper相關(guān)概念2、熟悉Zookeeper架構(gòu)與工作原理知識(shí)目標(biāo)12知識(shí)準(zhǔn)備13一、Zookeeper簡(jiǎn)介(一)什么是ZookeeperZookeeper分布式服務(wù)框架是ApacheHadoop一個(gè)子項(xiàng)目,它主要是用來(lái)解決分布式應(yīng)用中經(jīng)常遇到的一些數(shù)據(jù)管理問(wèn)題,如:統(tǒng)一命名服務(wù)、狀態(tài)同步服務(wù)、集群管理、分布式應(yīng)用配置項(xiàng)的管理等Zookeeper作為一個(gè)分布式的服務(wù)框架,主要用來(lái)解決分布式集群中應(yīng)用系統(tǒng)的一致性問(wèn)題,它能提供基于類似于文件系統(tǒng)的目錄節(jié)點(diǎn)樹(shù)方式的數(shù)據(jù)存儲(chǔ),Zookeeper作用主要是用來(lái)維護(hù)和監(jiān)控存儲(chǔ)的數(shù)據(jù)的狀態(tài)變化,通過(guò)監(jiān)控這些數(shù)據(jù)狀態(tài)的變化,從而達(dá)到基于數(shù)據(jù)的集群管理簡(jiǎn)單的說(shuō),zookeeper=文件系統(tǒng)+通知機(jī)制(二)Zookeeper應(yīng)用場(chǎng)景命名服務(wù)配置管理集群管理負(fù)載均衡分布式鎖二、Zookeeper集群基本架構(gòu)14Leader角色:負(fù)責(zé)投票的發(fā)起與決議,更新系統(tǒng)狀態(tài),寫數(shù)據(jù)Follower角色:用于接收客戶端請(qǐng)求并用來(lái)返回結(jié)果,在選主過(guò)程中參與投票O(jiān)bserver角色:可以接受客戶端連接,將寫請(qǐng)求轉(zhuǎn)發(fā)給leader節(jié)點(diǎn),但是不參與投票過(guò)程,只同步leader狀態(tài),主要存在目的就是為了提高讀取效率任務(wù)實(shí)施15HadoopHA集群部署–

Zookeeper集群配置、啟動(dòng)與驗(yàn)證步驟01上傳ZooKeeper安裝包并解壓02配置ZooKeeper環(huán)境變量03編輯ZooKeeper配置文件04創(chuàng)建zkData和zkDataLog目錄05設(shè)置ZooKeeper節(jié)點(diǎn)對(duì)應(yīng)的ID(myid)06分發(fā)ZooKeeper到其他節(jié)點(diǎn)07修改其他節(jié)點(diǎn)對(duì)應(yīng)的ID(myid)08啟動(dòng)與驗(yàn)證ZooKeeper集群16任務(wù)實(shí)施一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證上傳安裝包到第1個(gè)ZooKeeper節(jié)點(diǎn)(如:master)并解壓,以master節(jié)點(diǎn)為例執(zhí)行以下命令:[root@master~]#su–hadoop

#切換為hadoop用戶身份[hadoop@master~]$cd/opt/

#改變到Zookeeper安裝文件的上傳目錄/opt[hadoop@masteropt]$tar-zxvfapache-zookeeper-3.7.1-bin.tar.gz

#解壓Zookeeper[hadoop@masteropt]$mvapache-zookeeper-3.7.1-binzookeeper-3.7.1

#重命名Zookeeper目錄配置ZooKeeper環(huán)境變量[root@master~]#vi/etc/profile

#編輯環(huán)境變量配置文件(其余略)#新增以下ZOOKEEPER環(huán)境變量exportZOOKEEPER_HOME=/opt/zookeeper-3.7.1exportPATH=$PATH:$ZOOKEEPER_HOME/bin[root@master~]#source/etc/profile

#運(yùn)行腳本使環(huán)境變量立即生效17一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))編輯ZooKeeper配置文件[root@master~]#su–hadoop

#切換為hadoop用戶身份[hadoop@masteropt]$cd/opt/zookeeper-3.7.1/conf

#進(jìn)入Zookeeper配置文件目錄[hadoop@masterconf]$cpzoo_sample.cfgzoo.cfg

#從模板復(fù)制出Zookeeper配置文件[hadoop@masterconf]$vizoo.cfg

#編輯zoo.cfg配置文件(其余略)#修改dataDir配置參數(shù),注釋掉原始的設(shè)置:/tmp/zookeeperdataDir=/opt/zookeeper-3.7.1/zkDatadataLogDir=/opt/zookeeper-3.6.0/zkDataLog#在文件末尾添加以下內(nèi)容server.1=master:2888:3888server.2=slave1:2888:3888server.3=slave2:2888:388818一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))創(chuàng)建zkData和zkDataLog目錄[hadoop@masteropt]$cd/opt/zookeeper-3.7.1/

#進(jìn)入Zookeeper目錄[hadoop@masterzookeeper-3.7.1]$mkdirzkDatazkDataLog

#創(chuàng)建兩個(gè)目錄zkData、zkDataLog設(shè)置ZooKeeper節(jié)點(diǎn)對(duì)應(yīng)的ID(myid)[root@master~]#su–hadoop

#切換為hadoop用戶身份[hadoop@master~]$echo1>/opt/zookeeper-3.7.1/zkData/myid

#創(chuàng)建myid文件,內(nèi)容為1[hadoop@master~]$cat/opt/zookeeper-3.7.1/zkData/myid

#查看myid文件內(nèi)容119一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))分發(fā)ZooKeeper到其他ZooKeeper節(jié)點(diǎn)在master節(jié)點(diǎn),以root用戶身份,分發(fā)/etc/profile系統(tǒng)環(huán)境變量配置文件到其他Zookeeper節(jié)點(diǎn)[root@master~]#scp/etc/profileroot@slave1:/etc/

#分發(fā)系統(tǒng)環(huán)境變量配置文件到slave1節(jié)點(diǎn)[root@master~]#scp/etc/profileroot@slave2:/etc/

#分發(fā)系統(tǒng)環(huán)境變量配置文件到slave2節(jié)點(diǎn)在master節(jié)點(diǎn),以hadoop用戶身份,分發(fā)配置好的Zookeeper目錄到其他Zookeeper節(jié)點(diǎn)[root@master~]#su–hadoop

#切換為hadoop用戶身份[hadoop@master~]$cd/opt/

#改變到/opt目錄[hadoop@masteropt]$scp-rzookeeper-3.7.1/hadoop@slave1:/opt/

#分發(fā)Zookeeper到slave1[hadoop@masteropt]$scp-rzookeeper-3.7.1/hadoop@slave2:/opt/

#分發(fā)Zookeeper到slave220一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))修改其他ZooKeeper節(jié)點(diǎn)對(duì)應(yīng)的ID(myid)在slave1節(jié)點(diǎn),以hadoop身份,將Zookeeper的myid文件內(nèi)容修改為:2[root@slave1

~]#su–hadoop

#切換為hadoop用戶身份[hadoop@slave1~]$cat/opt/zookeeper-3.7.1/zkData/myid

#查看修改前myid文件內(nèi)容1[hadoop@slave1~]$echo2>/opt/zookeeper-3.7.1/zkData/myid

#修改myid文件內(nèi)容為2[hadoop@slave1~]$cat/opt/zookeeper-3.7.1/zkData/myid

#查看修改后myid文件內(nèi)容2在slave2節(jié)點(diǎn),以hadoop身份,將Zookeeper的myid文件內(nèi)容修改為:3[root@slave2

~]#su–hadoop

#切換為hadoop用戶身份[hadoop@slave2

~]$cat/opt/zookeeper-3.7.1/zkData/myid

#查看修改前myid文件內(nèi)容1[hadoop@slave2~]$echo3>/opt/zookeeper-3.7.1/zkData/myid

#修改myid文件內(nèi)容為2[hadoop@slave2~]$cat/opt/zookeeper-3.7.1/zkData/myid

#查看修改后myid文件內(nèi)容321一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))啟動(dòng)ZooKeeper集群#以master節(jié)點(diǎn)為例,用hadoop用戶身份啟動(dòng)Zookeeper服務(wù)(注意:需要在所有節(jié)點(diǎn)啟動(dòng))[hadoop@masteropt]$cd/opt/zookeeper-3.7.1/#進(jìn)入Zookeeper目錄[hadoop@masterzookeeper-3.7.1]$bin/zkServer.shstart

#啟動(dòng)Zookeeper服務(wù)ZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper-3.7.1/bin/../conf/zoo.cfgStartingzookeeper...STARTED注意:在slave1、slave2都需要運(yùn)行以上命令啟動(dòng)Zookeeper服務(wù)22一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))驗(yàn)證ZooKeeper集群#在master節(jié)點(diǎn),以hadoop用戶身份,輸入以下命令[hadoop@masterzookeeper-3.7.1]$bin/zkServer.shstatus#查看Zookeeper狀態(tài)ZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper-3.7.1/bin/../conf/zoo.cfgClientportfound:2181.Clientaddress:localhost.ClientSSL:false.Mode:follower#在slave1節(jié)點(diǎn),以hadoop用戶身份,輸入以下命令[hadoop@slave1zookeeper-3.7.1]$bin/zkServer.shstatus#查看Zookeeper狀態(tài)Mode:leader#在slave2節(jié)點(diǎn),以hadoop用戶身份,輸入以下命令[hadoop@slave2zookeeper-3.7.1]$bin/zkServer.shstatus#查看Zookeeper狀態(tài)Mode:follower23一、Zookeeper集群配置、啟動(dòng)與驗(yàn)證(續(xù))使用Zookeeper客戶端進(jìn)行連接測(cè)試[hadoop@masterzookeeper-3.7.1]$bin/zkCli.sh-servermaster:2181#使用Zookeeper客戶端(其余略)WATCHER::WatchedEventstate:SyncConnectedtype:Nonepath:null[zk:master:2181(CONNECTED)0][zk:master:2181(CONNECTED)1]ls/

#列出znode的子節(jié)點(diǎn)主講:方明清0102目錄任務(wù)1規(guī)劃HadoopHA集群任務(wù)2Zookeeper安裝與配置03任務(wù)3HDFSHA配置與啟動(dòng)04任務(wù)4YARNHA配置與啟動(dòng)任務(wù)3HDFSHA配置與啟動(dòng)3任務(wù)目標(biāo)1、能夠熟練完成HDFSHA的安裝與配置2、能夠熟練完成HDFSHA集群的啟動(dòng)3、能夠熟練完成HDFSHA集群的驗(yàn)證能力目標(biāo)1、了解HDFSHA的系統(tǒng)架構(gòu)2、熟悉HDFSHA的工作原理知識(shí)目標(biāo)27知識(shí)準(zhǔn)備28一、HDFSHA系統(tǒng)架構(gòu)(一)HDFSHA系統(tǒng)架構(gòu)ActiveNameNodeStandbyNameNodeDataNode節(jié)點(diǎn)ZKFailoverController(ZKFC)Zookeeper集群共享存儲(chǔ)系統(tǒng)一、HDFSHA系統(tǒng)架構(gòu)29(二)基于QuorumJournalManager(QJM)的共享存儲(chǔ)系統(tǒng)共享存儲(chǔ)系統(tǒng)是實(shí)現(xiàn)NameNode的高可用最為關(guān)鍵的部分,保存了NameNode在運(yùn)行過(guò)程中所產(chǎn)生的HDFS的元數(shù)據(jù)。主備NameNode通過(guò)共享存儲(chǔ)系統(tǒng)實(shí)現(xiàn)元數(shù)據(jù)同步。在進(jìn)行主備切換的時(shí)候,新的主NameNode在確認(rèn)元數(shù)據(jù)完全同步之后才能繼續(xù)對(duì)外提供服務(wù)二、HDFSNameNodeHA主備切換流程30HealthMonitor初始化完成后啟動(dòng)內(nèi)部線程來(lái)定時(shí)調(diào)用NameNode的HAServiceProtocol(RPC)接口的方法,監(jiān)控健康狀態(tài)HealthMonitor如果監(jiān)控到NameNode的健康狀態(tài)發(fā)生變化,會(huì)回調(diào)ZKFailoverController注冊(cè)的相應(yīng)方法進(jìn)行通知如果ZKFailoverController判斷需要進(jìn)行主備切換,會(huì)通過(guò)ActiveStandbyElector來(lái)進(jìn)行自動(dòng)的主備選舉ActiveStandbyElector與Zookeeper進(jìn)行交互完成自動(dòng)的主備選舉ActiveStandbyElector在主備選舉完成后,回調(diào)ZKFailoverController的相應(yīng)方法來(lái)通知主備選舉結(jié)果ZKFailoverController調(diào)用對(duì)應(yīng)NameNode的HAServiceProtocol接口的方法將NameNode轉(zhuǎn)換為Active狀態(tài)或Standby狀態(tài)31主講:方明清任務(wù)3HDFSHA配置與啟動(dòng)3任務(wù)實(shí)施34HadoopHA集群部署–

HDFSHA配置、啟動(dòng)與驗(yàn)證步驟01配置HADOOP環(huán)境變量02修改HDFSHA核心配置文件03修改HDFSHA配置文件04分發(fā)HDFSHA配置文件05HDFSHA集群的格式化06常規(guī)啟動(dòng)HDFSHA集群07驗(yàn)證HDFSHA集群08測(cè)試HDFSHA集群主備NameNode切換35任務(wù)實(shí)施一、配置HADOOP環(huán)境變量在master節(jié)點(diǎn),以root用戶身份,修改/etc/profile系統(tǒng)環(huán)境變量文件,配置HADOOP環(huán)境變量[root@master~]#vi/etc/profile

#編輯環(huán)境變量配置文件(其余略)#新增以下HADOOP環(huán)境變量#HADOOP環(huán)境變量exportHADOOP_HOME=/opt/hadoop-3.3.4exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin[root@master~]#source/etc/profile

#運(yùn)行腳本使環(huán)境變量立即生效36二、修改HDFSHA核心配置文件core-site.xml在master節(jié)點(diǎn),以hadoop用戶身份,編輯修改core-site.xml配置文件[root@master~]#su–hadoop

#在master節(jié)點(diǎn),切換為hadoop用戶[hadoop@master~]$cd/opt/hadoop-3.3.4/etc/hadoop/

#改變到hadoop配置文件目錄[hadoop@masterhadoop]$vicore-site.xml

#編輯HDFSHA核心配置文件(其余略)<configuration><!--指定NameNode主機(jī)連接到nameservices邏輯名myha(在hdfs-site.xml中有定義)--><property><name>fs.defaultFS</name><value>hdfs://myha</value></property>

<!--指定tmp文件夾路徑--><property><name>hadoop.tmp.dir</name><value>/home/hadoop/data/tmp</value></property>(下頁(yè)續(xù))37二、修改HDFSHA核心配置文件core-site.xml(續(xù))在master節(jié)點(diǎn),以hadoop用戶身份,編輯修改core-site.xml配置文件(續(xù))(續(xù)上頁(yè))<!–設(shè)置zookeeper地址--><property><name>ha.zookeeper.quorum</name><value>master:2181,slave1:2181,slave2:2181</value></property></configuration>以hadoop用戶身份,在所有節(jié)點(diǎn)都創(chuàng)建目錄/home/hadoop/data/data/tmp#以master節(jié)點(diǎn)為例,創(chuàng)建hadoop臨時(shí)目錄[hadoop@masterhadoop]$mkdir/home/hadoop/data/tmp/

#創(chuàng)建hadoop臨時(shí)目錄注意:需要在所有節(jié)點(diǎn)都創(chuàng)建目錄/home/hadoop/data/data/tmp38三、修改HDFSHA配置文件hdfs-site.xml刪除SecondaryNameNode,配置為雙NameNode模式#編輯hdfs-site.xml配置文件,添加以下內(nèi)容[hadoop@masterhadoop]$vihdfs-site.xml(其余略)<configuration><!–-為namenode集群定義一個(gè)nameservices邏輯名myha--><property><name>services</name><value>myha</value></property>

<!–-映射nameservices邏輯名稱myha到namenode邏輯名稱nn1,nn2--><property><name>nodes.myha</name><value>nn1,nn2</value></property><!--數(shù)據(jù)副本數(shù)量:3--><property><name>dfs.replication</name><value>3</value></property>(其余略)39三、修改HDFSHA配置文件hdfs-site.xml(續(xù))映射namenode邏輯名稱nn1,nn2的RPC地址到真實(shí)主機(jī)名master,slave1的RPC地址#編輯hdfs-site.xml配置文件,添加以下內(nèi)容[hadoop@masterhadoop]$vihdfs-site.xml(其余略)

<!–映射namenode邏輯名稱nn1的RPC地址到真實(shí)主機(jī)名master的RPC地址--><property><name>node.rpc-address.myha.nn1</name><value>master:8020</value></property>

<!–映射namenode邏輯名稱nn2的RPC地址到真實(shí)主機(jī)名slave1的RPC地址--><property><name>node.rpc-address.myha.nn2</name><value>slave1:8020</value></property>(其余略)40三、修改HDFSHA配置文件hdfs-site.xml(續(xù))映射namenode邏輯名稱nn1,nn2的HTTP地址到真實(shí)主機(jī)名master,slave1的HTTP地址#編輯hdfs-site.xml配置文件,添加以下內(nèi)容[hadoop@masterhadoop]$vihdfs-site.xml(其余略)

<!–-映射namenode邏輯名稱nn1的HTTP地址到真實(shí)主機(jī)名master的HTTP地址--><property><name>node.http-address.myha.nn1</name><value>master:9870</value></property>

<!–-映射namenode邏輯名稱nn2的HTTP地址到真實(shí)主機(jī)名slave1的HTTP地址--><property><name>node.http-address.myha.nn2</name><value>slave1:9870</value></property>(其余略)41三、修改HDFSHA配置文件hdfs-site.xml(續(xù))映射namenode邏輯名稱nn1,nn2的HTTP地址到真實(shí)主機(jī)名master,slave1的HTTP地址#編輯hdfs-site.xml配置文件,添加以下內(nèi)容[hadoop@masterhadoop]$vihdfs-site.xml(其余略)

<!–-配置namenode間用于共享編輯日志的journalnode列表--><property><name>node.shared.edits.dir</name><value>qjournal://master:8485;slave1:8485;slave2:8485/myha</value></property>

<!–-配置journalnode用于存放共享編輯日志的目錄--><property><name>dfs.journalnode.edits.dir</name><value>/home/hadoop/data/dfs/jn</value></property>(其余略)42三、修改HDFSHA配置文件hdfs-site.xml(續(xù))配置主備NameNode失敗自動(dòng)切換參數(shù)#編輯hdfs-site.xml配置文件,添加以下內(nèi)容[hadoop@masterhadoop]$vihdfs-site.xml(其余略)

<!–-開(kāi)啟NameNode失敗自動(dòng)切換--><property><name>dfs.ha.automatic-failover.enabled</name><value>true</value></property>

<!–-配置NameNode失敗自動(dòng)切換實(shí)現(xiàn)方式--><property><name>vider.myha</name><value>node.ha.ConfiguredFailoverProxyProvider</value></property>(下頁(yè)續(xù))43三、修改HDFSHA配置文件hdfs-site.xml(續(xù))配置主備NameNode失敗自動(dòng)切換參數(shù)(續(xù))(續(xù)上頁(yè))

<!–-配置隔離機(jī)制方法,多個(gè)機(jī)制用換行分割,即每個(gè)機(jī)制占用一行--><property><name>dfs.ha.fencing.methods</name><value>sshfenceshell(/bin/true)</value></property><!--配置sshfence選項(xiàng)時(shí)的私鑰文件地址--><property><name>dfs.ha.fencing.ssh.private-key-files</name><value>/home/hadoop/.ssh/id_rsa</value></property>(其余略)44三、修改HDFSHA配置文件hdfs-site.xml(續(xù))配置NameNode、DataNode數(shù)據(jù)存放路徑參數(shù)#編輯hdfs-site.xml配置文件,添加以下內(nèi)容[hadoop@masterhadoop]$vihdfs-site.xml(其余略)

<!--NameNode數(shù)據(jù)存放路徑--><property><name>.dir</name><value>/home/hadoop/data/dfs/namenode</value></property><!--DataNode數(shù)據(jù)存放路徑--><property><name>dfs.datanode.data.dir</name><value>/home/hadoop/data/dfs/datanode</value></property>(其余略)主講:方明清任務(wù)3HDFSHA配置與啟動(dòng)3任務(wù)實(shí)施47HadoopHA集群部署–

HDFSHA配置、啟動(dòng)與驗(yàn)證步驟01配置HADOOP環(huán)境變量02修改HDFSHA核心配置文件03修改HDFSHA配置文件04分發(fā)HDFSHA配置文件05HDFSHA集群的格式化06常規(guī)啟動(dòng)HDFSHA集群07驗(yàn)證HDFSHA集群08測(cè)試HDFSHA集群主備NameNode切換48四、分發(fā)HDFSHA配置文件在master節(jié)點(diǎn),以root用戶身份,分發(fā)/etc/profile系統(tǒng)環(huán)境變量配置文件到其他Zookeeper節(jié)點(diǎn)[root@master~]#scp/etc/profileroot@slave1:/etc/

#分發(fā)系統(tǒng)環(huán)境變量配置文件到slave1節(jié)點(diǎn)Authorizedusersonly.Allactivitiesmaybemonitoredandreported.root@slave1'spassword:profile100%25103.4MB/s00:00[root@master~]#scp/etc/profileroot@slave2:/etc/

#分發(fā)系統(tǒng)環(huán)境變量配置文件到slave節(jié)點(diǎn)Authorizedusersonly.Allactivitiesmaybemonitoredandreported.root@slave2'spassword:profile100%25101.8MB/s00:00[root@master~]#在master節(jié)點(diǎn),以hadoop用戶身份,分發(fā)配置好的Hadoop目錄到其他節(jié)點(diǎn)[root@master~]#su–hadoop

#切換為hadoop用戶身份[hadoop@master~]$cd/opt/

#改變到/opt目錄[hadoop@masteropt]$scp-rhadoop-3.3.4hadoop@slave1:/opt/

#分發(fā)Hadoop到slave1[hadoop@masteropt]$scp-rhadoop-3.3.4hadoop@slave2:/opt/

#分發(fā)Hadoop到slave249五、HDFSHA集群的格式化在NameNode格式化之前,在所有節(jié)點(diǎn),刪除原來(lái)Hadoop完全分布式部署生成的數(shù)據(jù)存放目錄#在master節(jié)點(diǎn),以hadoop用戶身份,刪除原來(lái)Hadoop完全分布式部署生成的數(shù)據(jù)存放目錄[hadoop@master~]$rm-rf/home/hadoop/data/dfs/*

#刪除原部署生成的HDFS數(shù)據(jù)目錄#在slave1節(jié)點(diǎn),以hadoop用戶身份,刪除原來(lái)Hadoop完全分布式部署生成的數(shù)據(jù)存放目錄[hadoop@slave1~]$rm-rf/home/hadoop/data/dfs/*

#刪除原部署生成的HDFS數(shù)據(jù)目錄#在slave2節(jié)點(diǎn),以hadoop用戶身份,刪除原來(lái)Hadoop完全分布式部署生成的數(shù)據(jù)存放目錄[hadoop@slave2~]$rm-rf/home/hadoop/data/dfs/*

#刪除原部署生成的HDFS數(shù)據(jù)目錄[hadoop@slave2~]$HDFSHA集群的格式化包含三個(gè)方面的內(nèi)容:主NameNode的格式化通過(guò)共享日志完成主備NameNode同步鏡像復(fù)制ZookeeperFailoverController(ZKFC)的格式化注意:HDFSHA集群的格式化只需要做一次,如果需要重新格式化,則需要?jiǎng)h除已經(jīng)格式化或者已經(jīng)運(yùn)行集群所生成的數(shù)據(jù)目錄。50五、HDFSHA集群的格式化(續(xù))在所有節(jié)點(diǎn),啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證、確保Zookeeper啟動(dòng)成功#在master節(jié)點(diǎn),啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證[hadoop@master~]$cd/opt/zookeeper-3.7.1/

#改變到Zookeeper目錄[hadoop@masterzookeeper-3.7.1]$bin/zkServer.shstart

#啟動(dòng)zookeeperZooKeeperJMXenabledbydefaultUsingconfig:/opt/zookeeper-3.7.1/bin/../conf/zoo.cfgStartingzookeeper...STARTED[hadoop@masterzookeeper-3.7.1]$#在slave1節(jié)點(diǎn),啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證[hadoop@slave1~]$cd/opt/zookeeper-3.7.1/

#改變到Zookeeper目錄[hadoop@slave1zookeeper-3.7.1]$bin/zkServer.shstart

#啟動(dòng)zookeeper[hadoop@slave1zookeeper-3.7.1]$bin/zkServer.shstatus

#查詢zookeeper服務(wù)狀態(tài)Mode:leader#在slave2節(jié)點(diǎn),啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證[hadoop@slave2~]$cd/opt/zookeeper-3.7.1/

#改變到Zookeeper目錄[hadoop@slave1zookeeper-3.7.1]$bin/zkServer.shstart

#啟動(dòng)zookeeper[hadoop@slave2zookeeper-3.7.1]$bin/zkServer.shstatus

#查詢zookeeper服務(wù)狀態(tài)Mode:follower51五、HDFSHA集群的格式化(續(xù))在所有節(jié)點(diǎn),啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證#在master節(jié)點(diǎn),啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證[hadoop@master~]$hdfs--daemonstartjournalnode

#啟動(dòng)共享日志服務(wù)(JournalNode)[hadoop@master~]$jps

#查看啟動(dòng)的共享日志服務(wù)過(guò)程42659Jps41530QuorumPeerMain42621JournalNode[hadoop@master~]$ll/home/hadoop/data/dfs/jn/

#查看是否自動(dòng)生成了journalnode目錄總用量0#在slave1節(jié)點(diǎn),啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證[hadoop@slave1~]$hdfs--daemonstartjournalnode

#啟動(dòng)共享日志服務(wù)(JournalNode)[hadoop@slave1~]$jps

#查看啟動(dòng)的共享日志服務(wù)過(guò)程64645JournalNode64294QuorumPeerMain64683Jps[hadoop@slave1~]$ll/home/hadoop/data/dfs/jn/

#查看是否自動(dòng)生成了journalnode目錄總用量0(下頁(yè)續(xù))52五、HDFSHA集群的格式化(續(xù))在所有節(jié)點(diǎn),啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證(續(xù))(續(xù)上頁(yè))#在slave2節(jié)點(diǎn),啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證[hadoop@slave2~]$hdfs--daemonstartjournalnode

#啟動(dòng)共享日志服務(wù)(JournalNode)[hadoop@slave2~]$jps

#查看啟動(dòng)的共享日志服務(wù)過(guò)程41922Jps41237QuorumPeerMain41884JournalNode[hadoop@slave2~]$ll/home/hadoop/data/dfs/jn/#查看是否自動(dòng)生成了journalnode目錄總用量053五、HDFSHA集群的格式化(續(xù))在master節(jié)點(diǎn),格式化NameNode,并啟動(dòng)NameNode#在master節(jié)點(diǎn),格式化NameNode,并啟動(dòng)NameNode[hadoop@master~]$hdfsnamenode–format

#在master節(jié)點(diǎn),格式化NameNode[hadoop@master~]$ll/home/hadoop/data/dfs/namenode/current/

#查看namenode格式化結(jié)果總用量16K-rw-r--r--1hadoophadoop40110月1711:32fsimage_0000000000000000000-rw-r--r--1hadoophadoop6210月1711:32fsimage_0000000000000000000.md5-rw-r--r--1hadoophadoop210月1711:32seen_txid-rw-r--r--1hadoophadoop21810月1711:32VERSION[hadoop@master~]$hdfs--daemonstartnamenode

#在master上啟動(dòng)namenode[hadoop@master~]$jps

#查看是否啟動(dòng)了NameNode進(jìn)程43992NameNode41530QuorumPeerMain44061Jps42621JournalNode54五、HDFSHA集群的格式化(續(xù))在slave1節(jié)點(diǎn),通過(guò)共享日志服務(wù)同步master節(jié)點(diǎn)上的NameNode元數(shù)據(jù),并啟動(dòng)NameNode#在slave1節(jié)點(diǎn),通過(guò)共享日志服務(wù)同步master節(jié)點(diǎn)上的NameNode元數(shù)據(jù),并啟動(dòng)NameNode[hadoop@slave1~]$hdfsnamenode–bootstrapStandby#通過(guò)共享日志同步元數(shù)據(jù)[hadoop@slave1~]$ll/home/hadoop/data/dfs/namenode/current/

#查看slave1同步的元數(shù)據(jù)總用量16K-rw-r--r--1hadoophadoop40110月1711:41fsimage_0000000000000000000-rw-r--r--1hadoophadoop6210月1711:41fsimage_0000000000000000000.md5-rw-r--r--1hadoophadoop210月1711:41seen_txid-rw-r--r--1hadoophadoop21810月1711:41VERSION[hadoop@slave1~]$hdfs--daemonstartnamenode

#在master上啟動(dòng)namenode[hadoop@slave1~]$jps

#查看是否啟動(dòng)了NameNode進(jìn)程65248NameNode65317Jps64645JournalNode64294QuorumPeerMain[hadoop@slave1~]$55五、HDFSHA集群的格式化(續(xù))在ZKFC的任何一個(gè)節(jié)點(diǎn)(即master、slave1節(jié)點(diǎn)),進(jìn)行ZKFC的格式化,并進(jìn)行驗(yàn)證#在master節(jié)點(diǎn),進(jìn)行ZKFC的格式化,并進(jìn)行驗(yàn)證[hadoop@masterzookeeper-3.7.1]$bin/zkCli.sh-servermaster:2181

#客戶端連接zookeeper[zk:master:2181(CONNECTED)3]ls/

#查看znode列表[hbase,zookeeper][hadoop@masterzookeeper-3.7.1]$hdfszkfc–formatZK

#在master上進(jìn)行ZKFC格式化[hadoop@masterzookeeper-3.7.1]$bin/zkCli.sh-servermaster:2181

#客戶端連接zookeeper[zk:master:2181(CONNECTED)0]ls/

#查看ZKFC格式化后的znode列表[hadoop-ha,hbase,zookeeper][zk:master:2181(CONNECTED)0]quit

#退出客戶端#在slave1節(jié)點(diǎn),客戶端連接zookeeper,進(jìn)行驗(yàn)證[hadoop@slave1zookeeper-3.7.1]$bin/zkCli.sh-serverslave1:2181

#客戶端連接zookeeper[zk:slave1:2181(CONNECTED)3]ls/

#查看znode列表[hadoop-ha,hbase,zookeeper][zk:slave1:2181(CONNECTED)0]quit

#退出客戶端主講:方明清任務(wù)3HDFSHA配置與啟動(dòng)3任務(wù)實(shí)施58HadoopHA集群部署–

HDFSHA配置、啟動(dòng)與驗(yàn)證步驟01配置HADOOP環(huán)境變量02修改HDFSHA核心配置文件03修改HDFSHA配置文件04分發(fā)HDFSHA配置文件05HDFSHA集群的格式化06常規(guī)啟動(dòng)HDFSHA集群07驗(yàn)證HDFSHA集群08測(cè)試HDFSHA集群主備NameNode切換59六、部署完成之后常規(guī)啟動(dòng)HDFSHA集群在所有節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證#在master節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證[hadoop@masterzookeeper-3.7.1]$bin/zkServer.shstart

#在master節(jié)點(diǎn),啟動(dòng)zookeeper[hadoop@masterzookeeper-3.7.1]$bin/zkServer.shstatus

#在master節(jié)點(diǎn),驗(yàn)證zookeeper#在slave1節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證[hadoop@slave1zookeeper-3.7.1]$bin/zkServer.shstart

#在slave1節(jié)點(diǎn),啟動(dòng)zookeeper[hadoop@slave1zookeeper-3.7.1]$bin/zkServer.shstatus

#在slave1節(jié)點(diǎn),驗(yàn)證zookeeper#在slave2節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)Zookeeper,并進(jìn)行驗(yàn)證[hadoop@slave2zookeeper-3.7.1]$bin/zkServer.shstart

#在slave2節(jié)點(diǎn),啟動(dòng)zookeeper[hadoop@slave2zookeeper-3.7.1]$bin/zkServer.shstatus

#在slave2節(jié)點(diǎn),驗(yàn)證zookeeper60六、部署完成之后常規(guī)啟動(dòng)HDFSHA集群(續(xù))在所有節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證#在master節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證[hadoop@master~]$hdfs--daemonstartjournalnode

#在master節(jié)點(diǎn)啟動(dòng)共享日志服務(wù)[hadoop@master~]$jps

#在master節(jié)點(diǎn),查看已啟動(dòng)的JournalNode進(jìn)程#在slave1節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證[hadoop@slave1~]$hdfs--daemonstartjournalnode

#在slave1節(jié)點(diǎn)啟動(dòng)共享日志服務(wù)[hadoop@slave1~]$jps

#在slave1節(jié)點(diǎn),查看已啟動(dòng)的JournalNode進(jìn)程#在slave2節(jié)點(diǎn),以hadoop用戶身份,啟動(dòng)共享日志服務(wù)(JournalNode),并進(jìn)行驗(yàn)證[hadoop@slave2~]$hdfs--daemonstartjournalnode

#在slave2節(jié)點(diǎn)啟動(dòng)共享日志服務(wù)[hadoop@slave2~]$jps

#在slave2節(jié)點(diǎn),查看已啟動(dòng)的JournalNode進(jìn)程61六、部署完成之后常規(guī)啟動(dòng)HDFSHA集群(續(xù))在master、slave1節(jié)點(diǎn)(即主備NameNode節(jié)點(diǎn)),以hadoop用戶身份,啟動(dòng)ZookeeperFailoverController(ZKFC),并進(jìn)行驗(yàn)證#在master節(jié)點(diǎn)(即主備NameNode節(jié)點(diǎn)),以hadoop用戶身份,啟動(dòng)ZookeeperFailoverController(ZKFC),并進(jìn)行驗(yàn)證[hadoop@master~]$hdfs--daemonstartzkfc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論