前言
本節(jié)內(nèi)容我們介紹一下hadoop在手動(dòng)模式下如何實(shí)現(xiàn)HDFS的高可用,HDFS的高可用功能是通過(guò)配置多個(gè) NameNodes(Active/Standby)實(shí)現(xiàn)在集群中對(duì) NameNode 的熱備來(lái)解決上述問(wèn)題。如果出現(xiàn)故障,如機(jī)器崩潰或機(jī)器需要升級(jí)維護(hù),這時(shí)可通過(guò)此種方式將 NameNode很快的切換到另外一臺(tái)機(jī)器,并通過(guò)JournalNode實(shí)現(xiàn)主備節(jié)點(diǎn)的數(shù)據(jù)同步。
正文
- 集群規(guī)劃
HDFS高可用集群規(guī)劃
hadoop101 hadoop02 hadoop03 NameNode NameNode NameNode JournalNode JournalNode JournalNode DataNode DataNode DataNodeNameNode:控制節(jié)點(diǎn)
JournalNode:控制節(jié)點(diǎn)數(shù)據(jù)同步
DataNode:數(shù)據(jù)節(jié)點(diǎn)
- 清除hadoop集群下的data和logs目錄
-清除hadoop101的data和logs目錄,hadoop102和hadoop103同上步驟
- ?在/opt/module/hadoop-3.1.3/etc/hadoop目錄下修改core-site.xml配置文件
-?core-site.xml配置文件
<configuration> <!-- 把多個(gè) NameNode 的地址組裝成一個(gè)集群 mycluster --> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <!-- 指定 hadoop 運(yùn)行時(shí)產(chǎn)生文件的存儲(chǔ)目錄 --> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.1.3/data</value> </property> </configuration>
- ??在/opt/module/hadoop-3.1.3/etc/hadoop目錄下修改hdfs-site.xml配置文件
- 修改hdfs-site.xml配置文件
<configuration> <!-- NameNode 數(shù)據(jù)存儲(chǔ)目錄 --> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/nn</value> </property> <!-- DataNode 數(shù)據(jù)存儲(chǔ)目錄 --> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dn</value> </property> <!-- JournalNode 數(shù)據(jù)存儲(chǔ)目錄 --> <property> <name>dfs.journalnode.edits.dir</name> <value>${hadoop.tmp.dir}/jn</value> </property> <!-- 完全分布式集群名稱(chēng) --> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <!-- 集群中 NameNode 節(jié)點(diǎn)都有哪些 --> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2,nn3</value> </property> <!-- NameNode 的 RPC 通信地址 --> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>hadoop101:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>hadoop102:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn3</name> <value>hadoop103:8020</value> </property> <!-- NameNode 的 http 通信地址 --> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>hadoop101:9870</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>hadoop102:9870</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn3</name> <value>hadoop103:9870</value> </property> <!-- 指定 NameNode 元數(shù)據(jù)在 JournalNode 上的存放位置 --> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://hadoop101:8485;hadoop102:8485;hadoop103:8485/mycluster</value> </property> <!-- 訪問(wèn)代理類(lèi):client 用于確定哪個(gè) NameNode 為 Active --> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <!-- 配置隔離機(jī)制,即同一時(shí)刻只能有一臺(tái)服務(wù)器對(duì)外響應(yīng) --> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <!-- 使用隔離機(jī)制時(shí)需要 ssh 秘鑰登錄--> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/home/hadoop/.ssh/id_rsa</value> </property> </configuration>
- ?分發(fā)配置文件到其它hadoop集群服務(wù)器
- 啟動(dòng)hadoop集群的journalnode服務(wù),用于同步namenode數(shù)據(jù)
- 命令:hdfs --daemon start journalnode
- 對(duì)hadoop101節(jié)點(diǎn)數(shù)據(jù)格式化并啟動(dòng)namenode服務(wù)?
- 數(shù)據(jù)格式化命令:hdfs namenode -format
- 啟動(dòng)namenode服務(wù)命令:hdfs --daemon start namenode
- 在hadoop102與hadoop103上面執(zhí)行以下命令同步hadoop101的元數(shù)據(jù)信息
命令:hdfs namenode -bootstrapStandby
- 啟動(dòng)hadoop102與hadoop103的namenode服務(wù)
?命令:hdfs --daemon start namenode
- 在所有節(jié)點(diǎn)開(kāi)啟datanode服務(wù)
?命令:hdfs --daemon start datanode
- 將hadoop101激活為主節(jié)點(diǎn)
命令:hdfs haadmin -transitionToActive nn1
- 查看節(jié)點(diǎn)狀態(tài)?
- 自動(dòng)模式存在的問(wèn)題?
- 如果namenode掛機(jī)之后,想直接故障轉(zhuǎn)移,把其它節(jié)點(diǎn)升級(jí)為namenode主節(jié)點(diǎn)是不行的,必須先將掛機(jī)的namenode重新啟動(dòng)才行,手動(dòng)模式必須保證所有namenode節(jié)點(diǎn)必須是存活狀態(tài)
- 在有active狀態(tài)下的namenode節(jié)點(diǎn),是無(wú)法切換其它節(jié)點(diǎn)為active節(jié)點(diǎn)
- 集群中只有一個(gè)節(jié)點(diǎn)是active文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-623504.html
結(jié)語(yǔ)
hadoop高可用之HDFS手動(dòng)模式高可用內(nèi)容到這里就結(jié)束了,我們下期見(jiàn)。。。。。。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-623504.html
到了這里,關(guān)于(十一)大數(shù)據(jù)實(shí)戰(zhàn)——hadoop高可用之HDFS手動(dòng)模式高可用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!