聲明:作者原創(chuàng)址愿,轉(zhuǎn)載注明出處。
作者:帥氣陳吃蘋果
一冻璃、服務(wù)器環(huán)境
主機(jī)名 | IP | 用戶名 | 密碼 | 安裝目錄 |
---|---|---|---|---|
master188 | 192.168.29.188 | hadoop | hadoop | /home/hadoop/ |
master189 | 192.168.29.189 | hadoop | hadoop | /home/hadoop/ |
slave190 | 192.168.29.190 | hadoop | hadoop | /home/hadoop/ |
二响谓、集群規(guī)劃
master188 | master189 | slave190 |
---|---|---|
NameNode | NameNode | |
DataNode | DataNode | DataNode |
Zookeeper | Zookeeper | Zookeeper |
ResourceManager | ResourceManager | |
NodeManager | NodeManager | NodeManager |
HMaster | HMasetr | |
RegionServer | RegionServer | RegionServer |
JDK、Hadoop省艳、HBase版本兼容性(NS:不兼容娘纷;NT:未測(cè)試;Y:兼容):
HBase Version | JDK 6 | JDK 7 | JDK 8 |
---|---|---|---|
2.0 | X | X | Y |
1.3 | X | Y | Y |
1.2 | X | Y | Y |
1.1 | X | Y | NT |
1.0 | X | Y | NT |
0.98 | Y | Y | NT |
0.94 | Y | Y | N |
Hadoop\HBase | HBase-1.1.x | HBase-1.2.x | HBase-1.3.x | HBase-2.0.x |
---|---|---|---|---|
Hadoop-2.0.x-alpha | X | X | X | X |
Hadoop-2.1.0-beta | X | X | X | X |
Hadoop-2.2.0 | NT | X | X | X |
Hadoop-2.3.x | NT | X | X | X |
Hadoop-2.4.x | Y | Y | Y | X |
Hadoop-2.5.x | Y | Y | Y | X |
Hadoop-2.6.0 | X | X | X | X |
Hadoop-2.6.1+ | NT | Y | Y | Y |
Hadoop-2.7.0 | X | X | X | X |
Hadoop-2.7.1+ | NT | Y | Y | Y |
Hadoop-2.8.0 | X | X | X | X |
Hadoop-2.8.1 | X | X | X | X |
Hadoop-3.0.0-alphax | NT | NT | NT | NT |
考慮到HBase與JDK跋炕、Hadoop各版本兼容性赖晶,我們采用的組件版本如下:
組件 | 版本 |
---|---|
JDK | 1.8 |
Hadoop | 2.6.5 |
Zookeeper | 3.4.11 |
HBase | 1.3.1 |
三、安裝配置Zookeeper
1、下載及安裝
下載地址:http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.11/zookeeper-3.4.11.tar.gz
在master188機(jī)器上遏插,下載后解壓到/home/hadoop/目錄下:
tar -zxvf zookeeper-3.4.11.tar.gz -C /home/hadoop/
2捂贿、拷貝 zoo_sample.cfg
進(jìn)入zookeeper的conf目錄,拷貝zoo_sample.cfg
并重命名為zoo.cfg
:
cd zookeeper-3.4.11/conf/
cp zoo_sample.cfg zoo.cfg
3胳嘲、修改 zoo.cfg
vi zoo.cfg
修改如下厂僧,若原文件沒有dataDir則直接添加:
dataDir=/home/hadoop/zookeeper-3.4.11/data/zkData
//在最后添加,指定zookeeper集群主機(jī)及端口了牛,機(jī)器數(shù)必須為奇數(shù)
server.1=master188:2888:3888
server.2=master189:2888:3888
server.3=slave190:2888:3888
4颜屠、創(chuàng)建并編輯myid
//在zookeeper根目錄下創(chuàng)建zoo.cfg中配置的目錄
mkdir data/zkData/ -p
//創(chuàng)建并編輯文件
vi myid
//輸入1,即表示當(dāng)前機(jī)器為在zoo.cfg中指定的server.1
1
//保存退出
:wq
5鹰祸、拷貝zookeeper到其他機(jī)器
上述操作是在master188機(jī)器上進(jìn)行的甫窟,要將zookeeper拷貝到其他zookeeper集群機(jī)器上:
cd /home/hadoop
scp -r zookeeper-3.4.11/ hadoop@master189:/home/hadoop/
scp -r zookeeper-3.4.11/ hadoop@slave190:/home/hadoop/
集群中各組件的安裝目錄最好保持一致。
6蛙婴、修改其他機(jī)器的myid
文件
myid
文件是作為當(dāng)前機(jī)器在zookeeper集群的標(biāo)識(shí)粗井,這些標(biāo)識(shí)在zoo.cfg
文件中已經(jīng)配置好了,但是之前在master188這臺(tái)機(jī)器上配置的myid
為1敬锐,所以還需要修改其他機(jī)器的myid
文件:
//在master189機(jī)器上
echo 2 > /home/hadoop/zookeeper-3.4.11/data/zkData/myid
//在slave190機(jī)器上
echo 3 > /home/hadoop/zookeeper-3.4.11/data/zkData/myid
7背传、啟動(dòng)zookeeper集群
cd zookeeper-3.4.11/bin/
//分別在master188、master189台夺、slave190上啟動(dòng)
./zkServer.sh start
//查看狀態(tài)
./zkServer.sh status
三臺(tái)機(jī)器的zookeeper狀態(tài)必須只有一個(gè)leader
径玖,其他都是follower
。
//查看進(jìn)程颤介,若有QuorumpeerMain梳星,則啟動(dòng)成功
jps
四、安裝配置Hadoop
1滚朵、下載及安裝
下載地址:http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
在master88機(jī)器上冤灾,解壓到/home/hadoop/目錄下:
tar -zxcf hadoop-2.6.5.tar.gz -C /home/hadoop/
2、配置
進(jìn)入配置文件目錄辕近,修改配置文件
cd hadoop-2.6.5/etc/hadoop/
1)vi hadoop-env.sh
配置JDK安裝路徑:
JAVA_HOME=/opt/jdk
2)vi core-site.xml
<configuration>
<!-- hdfs地址韵吨,ha模式中是連接到nameservice -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://ns1</value>
</property>
<!-- 這里的路徑默認(rèn)是NameNode、DataNode移宅、JournalNode等存放數(shù)據(jù)的公共目錄归粉,也可以單獨(dú)指定 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6.5/tmp</value>
</property>
<!-- 指定ZooKeeper集群的地址和端口。注意漏峰,數(shù)量一定是奇數(shù)糠悼,且不少于三個(gè)節(jié)點(diǎn)-->
<property>
<name>ha.zookeeper.quorum</name>
<value>master188:2181,master189:2181,slave190:2181</value>
</property>
</configuration>
3)vi hdfs-site.xml
<configuration>
<!-- 指定副本數(shù),不能超過機(jī)器節(jié)點(diǎn)數(shù) -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!-- 為namenode集群定義一個(gè)services name -->
<property>
<name>dfs.nameservices</name>
<value>ns1</value>
</property>
<!-- nameservice 包含哪些namenode浅乔,為各個(gè)namenode起名 -->
<property>
<name>dfs.ha.namenodes.ns1</name>
<value>master188,master189</value>
</property>
<!-- 名為master188的namenode的rpc地址和端口號(hào)倔喂,rpc用來和datanode通訊 -->
<property>
<name>dfs.namenode.rpc-address.ns1.master188</name>
<value>master188:9000</value>
</property>
<!-- 名為master189的namenode的rpc地址和端口號(hào),rpc用來和datanode通訊 -->
<property>
<name>dfs.namenode.rpc-address.ns1.master189</name>
<value>master189:9000</value>
</property>
<!--名為master188的namenode的http地址和端口號(hào),用來和web客戶端通訊 -->
<property>
<name>dfs.namenode.http-address.ns1.master188</name>
<value>master188:50070</value>
</property>
<!-- 名為master189的namenode的http地址和端口號(hào)席噩,用來和web客戶端通訊 -->
<property>
<name>dfs.namenode.http-address.ns1.master189</name>
<value>master189:50070</value>
</property>
<!-- namenode間用于共享編輯日志的journal節(jié)點(diǎn)列表 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master188:8485;master189:8485;slave190:8485/ns1</value>
</property>
<!-- 指定該集群出現(xiàn)故障時(shí)班缰,是否自動(dòng)切換到另一臺(tái)namenode -->
<property>
<name>dfs.ha.automatic-failover.enabled.ns1</name>
<value>true</value>
</property>
<!-- journalnode 上用于存放edits日志的目錄 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/home/hadoop/hadoop-2.6.5/tmp/data/dfs/journalnode</value>
</property>
<!-- 客戶端連接可用狀態(tài)的NameNode所用的代理類 -->
<property>
<name>dfs.client.failover.proxy.provider.ns1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!-- 一旦需要NameNode切換,使用ssh方式進(jìn)行操作 -->
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<!-- 如果使用ssh進(jìn)行故障切換班挖,使用ssh通信時(shí)用的密鑰存儲(chǔ)的位置 -->
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>
<!-- connect-timeout超時(shí)時(shí)間 -->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>
4)vi mapred-site.xml
<!-- 采用yarn作為mapreduce的資源調(diào)度框架 -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
5)vi yarn-site.xml
<configuration>
<!-- 啟用HA高可用性 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<!-- 指定resourcemanager的名字 -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yrc</value>
</property>
<!-- 使用了2個(gè)resourcemanager,分別指定Resourcemanager的地址 -->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 指定rm1的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>master188</value>
</property>
<!-- 指定rm2的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>master189</value>
</property>
<!-- 指定當(dāng)前機(jī)器master188作為rm1 -->
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm1</value>
</property>
<!-- 指定zookeeper集群機(jī)器 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>master188:2181,master189:2181,slave190:2181</value>
</property>
<!-- NodeManager上運(yùn)行的附屬服務(wù)鲁捏,默認(rèn)是mapreduce_shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
6)vi slaves
master188
master189
slave190
3、拷貝hadoop到其他機(jī)器
1)拷貝
scp -r hadoop-2.6.5 hadoop@master189:/home/hadoop/
scp -r hadoop-2.6.5 hadoop@slave190:/home/hadoop/
2)修改yarn-site.xml
在master189機(jī)器萧芙,即ResourceManager備用主節(jié)點(diǎn)上修改如下屬性给梅,表示當(dāng)前機(jī)器作為rm2::
<property>
<name>yarn.resourcemanager.ha.id</name>
<value>rm2</value>
</property>
同時(shí)刪除slave190機(jī)器上的該屬性對(duì),因?yàn)閟lave190機(jī)器并不作為ResourceManager双揪。
3动羽、啟動(dòng)Hadoop
1)啟動(dòng)Journalnode
cd hadoop-2.6.5/sbin/
./hadoop-daemon.sh start
//查看進(jìn)程JouralNode是否啟動(dòng)
jps
2)格式化 NameNode和ZKFC
在master188機(jī)器上,執(zhí)行格式化操作:
cd hadoop-2.6.5/bin
./hdfs namenode -format
./hdfs zkfc -formatZK
3)備用主節(jié)點(diǎn)同步主節(jié)點(diǎn)元數(shù)據(jù)
在master189(備用主節(jié)點(diǎn))機(jī)器上渔期,執(zhí)行同步操作:
cd hadoop-2.6.5/bin
./hdfs namenode -bootstrapStanby
4)安裝fuster
若服務(wù)器是最小化安裝centeros時(shí)运吓,有可能系統(tǒng)沒有fuster程序,那么跳過這個(gè)安裝步驟直接進(jìn)行后面的操作時(shí)疯趟,將有可能出現(xiàn)以下問題:
master188作為主節(jié)點(diǎn)時(shí)拘哨,kill掉master188上的NameNode和ResourceManager進(jìn)程時(shí),可以實(shí)現(xiàn)故障轉(zhuǎn)移信峻,master189將從stanby狀態(tài)自動(dòng)變成active狀態(tài)倦青;但是當(dāng)master189作為主節(jié)點(diǎn)時(shí),若kill掉master189上的進(jìn)程盹舞,master188上的進(jìn)程狀態(tài)卻還是stanby产镐,并不能實(shí)現(xiàn)故障自動(dòng)轉(zhuǎn)移。原因是我們?cè)?hdfs-site.xml中配置了當(dāng)集群需要故障自動(dòng)轉(zhuǎn)移時(shí)采用SSH方式進(jìn)行踢步,而因?yàn)槿鄙賔uster程序癣亚,將在zkfc的日志文件中發(fā)現(xiàn)如下錯(cuò)誤:
PATH=$PATH:/sbin:/usr/sbin fuser -v -k -n tcp 9000 via ssh: bash: fuser: 未找到命令
Unable to fence service by any configured method
java.lang.RuntimeException: Unable to fence NameNode at master189/192.168.29.189:9000
提示未找到fuster程序,導(dǎo)致無法進(jìn)行fence获印,所以可以通過如下命令來安裝述雾,Psmisc軟件包中包含了fuster程序:
//分別在master188、master189兼丰、slave190上執(zhí)行
sudo yum install psmisc
5)啟動(dòng)HDFS绰咽、YARN、ZookeeperFailoverController
在master188機(jī)器上:
cd hadoop-2.6.5/sbin
./start-dfs.sh
//驗(yàn)證地粪,顯示NameNode和DataNode
jps
./start-yarn.sh
//驗(yàn)證,顯示ResourceManager和NodeManager
jps
./hadoop-daemon.sh start zkfc
//驗(yàn)證琐谤,顯示ZookeeperFailoverController
jps
在master189機(jī)器上蟆技,啟動(dòng)ResourceManager,備用主節(jié)點(diǎn)的ResourceManager需要手動(dòng)啟動(dòng):
cd hadoop-2.6.5/sbin
yarn-daemon.sh start resourcemanager
6)查看Namenode、ResourceManager狀態(tài)
在master188機(jī)器上執(zhí)行:
hdfs haadmin -getServiceState master188
yarn rmadmin -getServiceState rm1
hdfs haadmin -getServiceState master189
yarn rmadmin -getServiceState rm2
也可以通過Web界面來查看质礼,瀏覽器中輸入 ip:50070 查看HDFS旺聚,輸入 ip:8088/cluster/cluster 查看YARN。
7)測(cè)試高可用
a.主節(jié)點(diǎn)--->備用主節(jié)點(diǎn)
kill掉主節(jié)點(diǎn)的namenode眶蕉,查看備用主節(jié)點(diǎn)的namenode狀態(tài)是否切換為active砰粹;
kill掉主節(jié)點(diǎn)的ResourceManager,查看備用主節(jié)點(diǎn)的ResourceManager是否切換為active造挽;
b.備用主節(jié)點(diǎn)--->主節(jié)點(diǎn)
若上述操作執(zhí)行成功碱璃,那么再測(cè)試反向故障自動(dòng)轉(zhuǎn)移
先啟動(dòng)被殺死的原主節(jié)點(diǎn)的namenode和ResourceManager
hadoop-daemon.sh start namenode
yarn-daemon.sh start resourcemanager
再kill備用主節(jié)點(diǎn)的namenode和ResourceManager,查看主節(jié)點(diǎn)的狀態(tài)饭入,若能切換為active嵌器,那么Hadoop HA高可用集群搭建完成。
五谐丢、安裝配置HBase
1爽航、下載及安裝
下載地址:http://mirrors.hust.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
在master188機(jī)器上,解壓到/home/hadoop/目錄下:
tar -zxvf hbase-1.3.1-bin.tar.gz
2乾忱、配置
進(jìn)入hbase-1.3.1/conf/目錄讥珍,修改配置文件:
cd hbase-1.3.1/conf/
1)vi hbase-env.sh
//配置JDK
export JAVA_HOME=/opt/jdk
//保存pid文件
export HBASE_PID_DIR=/home/hadoop/data/hbase/pids
//修改HBASE_MANAGES_ZK,禁用HBase自帶的Zookeeper窄瘟,因?yàn)槲覀兪鞘褂锚?dú)立的Zookeeper
export HBASE_MANAGES_ZK=false
2)vi hbase-site.xml
<configuration>
<!-- 設(shè)置HRegionServers共享目錄衷佃,請(qǐng)加上端口號(hào) -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://master188:9000/hbase</value>
</property>
<!-- 指定HMaster主機(jī) -->
<property>
<name>hbase.master</name>
<value>hdfs://master188:60000</value>
</property>
<!-- 啟用分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- 指定Zookeeper集群位置 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>master188:2181,master189:2181,slave190:2181</value>
</property>
<!-- 指定獨(dú)立Zookeeper安裝路徑 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/hadoop/zookeeper-3.4.11</value>
</property>
<!-- 指定ZooKeeper集群端口 -->
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
</configuration>
3)vi regionservers
修改regionservers文件,因?yàn)楫?dāng)前是使用獨(dú)立的Zookeeper集群寞肖,所以要指定RegionServers所在機(jī)器:
master188
master189
slave190
4)創(chuàng)建pid文件保存目錄
在/home/hadoop/目錄下:
mkdir data/hbase/pids -p
3纲酗、拷貝HBase到其他機(jī)器
cd /home/hadoop/
scp -r hbase-1.3.1 hadoop@master189:/home/hadoop/
scp -r hbase-1.3.1 hadoop@slave190:/home/hadoop/
4、啟動(dòng)HBase
在主節(jié)點(diǎn)上啟動(dòng)HBase(這里的主節(jié)點(diǎn)是指NameNode狀態(tài)為active的節(jié)點(diǎn)新蟆,而非指文中對(duì)本實(shí)驗(yàn)的機(jī)器聲明):
cd hbase-1.3.1/bin
./start-hbase.sh
//查看HMaster觅赊、Regionserver進(jìn)程是否啟動(dòng)
jps
注意:此時(shí)Hadoop集群應(yīng)處于啟動(dòng)狀態(tài),并且是在主節(jié)點(diǎn)執(zhí)行start-hbase.sh啟動(dòng)HBase集群琼稻,否則HMaster進(jìn)程將在啟動(dòng)幾秒后消失吮螺,而備用的HMaster進(jìn)程需要在備用主節(jié)點(diǎn)單獨(dú)啟動(dòng),命令是:
./hbase-daemon.sh start master
帕翻。
在備用主節(jié)點(diǎn)啟動(dòng)HMaster進(jìn)程鸠补,作為備用HMaster:
cd hbase-1.3.1/bin
./hbase-daemon.sh start master
5、HA高可用測(cè)試
在瀏覽器中輸入 ip:16010
嘀掸,查看主節(jié)點(diǎn)和備用主節(jié)點(diǎn)上的HMaster的狀態(tài)紫岩,在備用主節(jié)點(diǎn)的web界面中,可以看到“Current Active Master: master188”睬塌,表示當(dāng)前HBase主節(jié)點(diǎn)是master188機(jī)器泉蝌;
主節(jié)點(diǎn)--->備用主節(jié)點(diǎn)
這里的主節(jié)點(diǎn)指使用start-hbase.sh命令啟動(dòng)HBase集群的機(jī)器
kill掉主節(jié)點(diǎn)的HMaster進(jìn)程歇万,在瀏覽器中查看備用主節(jié)點(diǎn)的HBase是否切換為active;
若上述操作成功勋陪,則在主節(jié)點(diǎn)啟動(dòng)被殺死的HMaster進(jìn)程:
cd hbase-1.3.1/bin/
./hbase-daemon.sh start master
然后贪磺,kill掉備用主節(jié)點(diǎn)的HMaster進(jìn)程,在瀏覽器中查看主節(jié)點(diǎn)的HBase是否切換為active诅愚,若操作成功寒锚,則HBase高可用集群搭建完成;
6违孝、HBase基本操作
//啟動(dòng)HBase
[root@vnet ~] start-hbase.sh
//進(jìn)入HBase Shell
[root@vnet ~] hbase shell
//查看當(dāng)前HBase有哪些表
hbase(main):> list
//創(chuàng)建表t_user刹前,cf1和cf2是列族,列族一般不超過3個(gè)
hbase(main):> create 't_user','cf1','cf2'
//獲得表t_user的描述信息
hbase(main):> describe 't_user'
//禁用表
hbase(main):> disable 't_user'
//刪除表等浊,刪除表之前要先把表禁用掉
hbase(main):> drop 't_user'
//查詢表是否存在
hbase(main):> exists 't_user'
//查看全表數(shù)據(jù)
hbase(main):> scan 't_user'
//插入數(shù)據(jù)腮郊,分別是表名、key筹燕、列(列族:具體列)轧飞、值。HBase是面向列的數(shù)據(jù)庫(kù)撒踪,列可無限擴(kuò)充
hbase(main):> put 't_user' ,'001','cf1:name','chenxj'
hbase(main):> put 't_user' ,'001','cf1:age','18'
hbase(main):> put 't_user' ,'001','cf2:sex','man'
hbase(main):> put 't_user' ,'002','cf1:name','chenxj'
hbase(main):> put 't_user' ,'002','cf1:address','fuzhou'
hbase(main):> put 't_user' ,'002','cf2:sex','man'
//獲取數(shù)據(jù)过咬,可根據(jù)key、key和列族等進(jìn)行查詢
hbase(main):> get 't_user','001'
hbase(main):> get 't_user','002','cf1'
hbase(main):> get 't_user','001','cf1:age'
六制妄、集群?jiǎn)?dòng)結(jié)果
Hadoop + Zookeeper + HBase 高可用集群?jiǎn)?dòng)后掸绞,進(jìn)程狀態(tài)如下:
描述 | master188 | master189 | slave190 |
---|---|---|---|
HDFS主 | NameNode | NameNode | |
HDFS從 | DataNode | DataNode | DataNode |
YARN主 | ResourceManager | ResourceManager | |
YARN從 | NodeManager | NodeManager | NodeManager |
HBase主 | HMaster | HMaster | |
HBase從 | HRegionServer | HRegionServer | HRegionServer |
Zookeeper獨(dú)立進(jìn)程 | QuorumPeerMain | QuorumPeerMain | QuorumPeerMain |
NameNodes數(shù)據(jù)同步 | JournalNode | JournalNode | JournalNode |
主備故障切換 | DFSZKFailoverController | DFSZKFailoverController |
七、總結(jié)
需要注意的地方:
1)備用節(jié)點(diǎn)上的NameNode耕捞、ResourceManager衔掸、HMaster均需單獨(dú)啟動(dòng);
hadoop-daemon.sh start namenode
yarn-daemon.sh start resourcemanager
hbase-daemon.sh start master
2)可以使用-forcemanual參數(shù)強(qiáng)制切換主節(jié)點(diǎn)與備用主節(jié)點(diǎn)俺抽,但強(qiáng)制切換后集群的自動(dòng)故障轉(zhuǎn)移將會(huì)失效敞映,需要重新格式化zkfc:
hdfs zdfc -formatZK
;
hdfs haadmin -transitionToActive/transitionToStandby -forcemanual master189
yarn rmadmin -transitionToActive/transitionToStandby -forcemanual rm2
3)在備用主節(jié)點(diǎn)同步主節(jié)點(diǎn)的元數(shù)據(jù)時(shí),主節(jié)點(diǎn)的HDFS必須已經(jīng)啟動(dòng)磷斧;
4)無法查看standby狀態(tài)的節(jié)點(diǎn)上的hdfs振愿;
5)格式化namenode時(shí)要先啟動(dòng)各個(gè)JournalNode機(jī)器上的journalnode進(jìn)程:
hadoop-daemon.sh start journalnode
;6)若遇到問題弛饭,可以先考慮是哪個(gè)組件出現(xiàn)問題冕末,然后查看該組件或與該組件相關(guān)的組件的日志信息;若各組件web頁面無法訪問侣颂,或存在其他連接問題档桃,可以從「防火墻是否關(guān)閉」、「端口是否被占用」憔晒、「SSH」藻肄、「集群機(jī)器是否處于同一網(wǎng)段」內(nèi)等角度考慮销凑;
最后,歡迎指正仅炊。喜歡的話,點(diǎn)個(gè)贊唄澎蛛,請(qǐng)你吃蘋果抚垄。