HADOOPHA之NameNodeHA集群配置與應(yīng)用-創(chuàng)新互聯(lián)

目錄

成都創(chuàng)新互聯(lián)公司是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),網(wǎng)站空間、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,德陽機(jī)房服務(wù)器托管,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個(gè)國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。

前言

一、HADOOP HA之NameNode HA集群配置

1、修改hadoop-env.sh

2、修改core-site.xml

3、修改hdfs-site.xml

4、修改workers

5、同步配置文件

6、啟動zookeeper集群

7、啟動journalnode

8、格式化namenode

9、同步元數(shù)據(jù)

10、格式化ZKFC

11、啟動HDFS

二、HADOOP HA之NameNode HA集群應(yīng)用

1、查看兩個(gè)NameNode的運(yùn)行狀態(tài)

(1)命令行? (nn2是?NameNode的名字,可以換成nn1)

(2)Hadoop的Web UI界面

2、關(guān)閉集群中的原Active NameNode,查看原Standby NameNode的運(yùn)行狀態(tài)

3、重新啟動原Active NameNode,依次查看原Active NameNode和原Standby NameNode的運(yùn)行狀態(tài)

問題

1、Active NameNode關(guān)閉后Standby NameNode沒有自動切換成Active NameNode

2、兩個(gè)NameNode的運(yùn)行狀態(tài)都是Standby

3、Standby NameNode啟動不了

參考


前言

本文只講解HADOOP HA的NameNode HA集群配置與應(yīng)用,Yarn HA不作講解。

集群基礎(chǔ)環(huán)境準(zhǔn)備:

1、已經(jīng)搭建好Hadoop和zookeeper集群

2、在本地主機(jī)的 /etc/hosts文件修改集群各個(gè)主機(jī)名和IP的映射關(guān)系(訪問Hadoop的Web UI界面時(shí)需要)

3、配置好ssh免登陸


一、HADOOP HA之NameNode HA集群配置

找到你配置hadoop的目錄,想不起來可以用which hadoop命令行查看,在bin的同級目錄etc下找到hadoop配置文件所在目錄,進(jìn)行修改配置文件。

1、修改hadoop-env.sh
vi hadoop-env.sh
export JAVA_HOME=/opt/module/jdk-8u162-linux-x64/jdk1.8.0_162
export PATH=$JAVA_HOME/bin:$PATH
export HADOOP_HOME=/opt/module
export PATH=$HADOOP_HOME/bin:$PATH
export PATH=$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_ZKFC_USER=root

把jdk和hadoop的配置路徑換成你自己的,可以用which java和which hadoop命令行查看。

2、修改core-site.xml
vi core-site.xml
fs.defaultFShdfs://myclusterhadoop.tmp.dirfile:/home/hadoop/tmpio.file.buffer.size131702ha.zookeeper.quorumhadoop1:2181,hadoop2:2181,hadoop3:2181

我Hadoop集群的主機(jī)名是hadoop1、hadoop2、hadoop3(記得完成主機(jī)名和ip地址映射,不然會出問題),換成你自己集群的主機(jī)名。

3、修改hdfs-site.xml
vi hdfs-site.xml
  dfs.namenode.name.dir file:/home/hadoop/hdfs_name dfs.datanode.data.dir file:/home/hadoop/hdfs_data dfs.replication 2 dfs.webhdfs.enabled true dfs.nameservices mycluster dfs.ha.namenodes.mycluster nn1,nn2    dfs.namenode.rpc-address.mycluster.nn1 hadoop1:8020 dfs.namenode.http-address.mycluster.nn1 hadoop1:9870 dfs.namenode.rpc-address.mycluster.nn2 hadoop2:8020 dfs.namenode.http-address.mycluster.nn2 hadoop2:9870 dfs.namenode.shared.edits.dir qjournal://hadoop1:8485;hadoop2:8485;hadoop3:8485/mycluster dfs.journalnode.edits.dir /home/hadoop/data/journaldata dfs.ha.automatic-failover.enabled truedfs.client.failover.proxy.provider.myclusterorg.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProviderdfs.ha.fencing.methods  sshfence
              shell(/bin/true)dfs.ha.fencing.ssh.private-key-files/root/.ssh/id_rsa dfs.ha.fencing.ssh.connect-timeout 30000

集群的主機(jī)名和存放數(shù)據(jù)的目錄換成你自己的。

4、修改workers
vi workers
hadoop1
hadoop2
hadoop3

換成你自己集群的主機(jī)名。

5、同步配置文件

返回上一層目錄,把hadoop目錄下的配置文件同步給集群中的其他主機(jī),-r后加目錄路徑,@后加主機(jī)名,如果新建了存放數(shù)據(jù)的目錄也要同步給集群中的其他主機(jī)。

cd ..

scp -r hadoop root@hadoop2:$PWD
6、啟動zookeeper集群

在集群中的每臺主機(jī)上啟動zookeeper,在zookeeper安裝目錄下輸入:

bin/zkServer.sh start

查看狀態(tài):一般是一個(gè)leader,兩個(gè)follower

bin/zkServer.sh status
7、啟動journalnode

在集群中的每臺主機(jī)上啟動journalnode,用jps命令行查看進(jìn)程,可以看到JournalNode進(jìn)程

hdfs --daemon start journalnode
jps
8、格式化namenode

格式化和啟動namenode,在hadoop1上執(zhí)行命令:

hdfs namenode -format
hdfs --daemon start namenode
9、同步元數(shù)據(jù)

在hadoop2上執(zhí)行命令:

hdfs namenode -bootstrapStandby
10、格式化ZKFC

在哪臺主機(jī)上執(zhí)行,哪臺主機(jī)就將成為第一次的Active Namenode

hdfs zkfc -formatZK
11、啟動HDFS

在hadoop1上執(zhí)行命令:

start-dfs.sh
二、HADOOP HA之NameNode HA集群應(yīng)用 1、查看兩個(gè)NameNode的運(yùn)行狀態(tài)

有兩種方式可以查看:

(1)命令行? (nn2是?NameNode的名字,可以換成nn1)
hdfs haadmin -getServiceState nn2
(2)Hadoop的Web UI界面

在瀏覽器網(wǎng)址欄輸入:http://hadoop1:9870/? 和??http://hadoop2:9870/

我是用docker在虛擬機(jī)里搭建hadoop集群的,所以用虛擬機(jī)主機(jī)里的瀏覽器查看,如果是開了三臺虛擬機(jī)搭建hadoop集群的話,在電腦本地的瀏覽器查看即可。如果用主機(jī)名+端口訪問不了,應(yīng)該是主機(jī)號和ip地址映射沒做好,可以直接用ip地址+端口號訪問;如果還是訪問不了那就是配置文件沒改好,或者是防火墻沒關(guān)閉等等。

2、關(guān)閉集群中的原Active NameNode,查看原Standby NameNode的運(yùn)行狀態(tài)

? hadoop1的NameNode原來是Active NameNode,hadoop2的NameNode原來是Standby NameNode,所以在hadoop1中關(guān)閉NameNode,輸入:

hdfs --daemon stop namenode

? 也可以用jps查看進(jìn)程號,kill -9 進(jìn)程號,結(jié)束NameNode進(jìn)程。刷新網(wǎng)頁后,發(fā)現(xiàn)hadoop1的NameNode訪問不了,hadoop2的NameNode變成了Active NameNode。

3、重新啟動原Active NameNode,依次查看原Active NameNode和原Standby NameNode的運(yùn)行狀態(tài)

在hadoop1中輸入:

hdfs --daemon start namenode

刷新網(wǎng)頁后,hadoop1的NameNode可以訪問且變成了Standby NameNode,hadoop2的NameNode是Active NameNode。

問題 1、Active NameNode關(guān)閉后Standby NameNode沒有自動切換成Active NameNode

解決方法:CentOS可能沒有自帶fuster 程序,但是在hdfs-site.xml中用到了fuster 程序,所以得自己安裝(每臺主機(jī)上都要安裝),安裝完如果還是不行,可以重啟所有虛擬機(jī)再試試。

yum -y install psmisc
2、兩個(gè)NameNode的運(yùn)行狀態(tài)都是Standby

解決方法:強(qiáng)制選定一個(gè)NameNode為Active NameNode,nn1是名稱節(jié)點(diǎn)的名字,換成你選定的

NameNode的名字

hdfs haadmin -transitionToActive --forcemanual nn1
3、Standby NameNode啟動不了

解決方法:從Active NameNode拉取FSimage和元數(shù)據(jù),再啟動Standby NameNode

hdfs namenode -bootstrapStandby
參考

黑馬程序員:HADOOP HA集群搭建

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

本文題目:HADOOPHA之NameNodeHA集群配置與應(yīng)用-創(chuàng)新互聯(lián)
分享鏈接:http://bm7419.com/article2/gieic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、定制網(wǎng)站、動態(tài)網(wǎng)站、網(wǎng)站維護(hù)、網(wǎng)站排名、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司

網(wǎng)站設(shè)計(jì)公司知識