目錄
前文
Hadoop3.3.1 HA 高可用叢集的搭建
QJM 的 NameNode HA
Hadoop HA模式搭建(高可用)
1、叢集規劃
2、Zookeeper叢集搭建:
3、修改Hadoop叢集配置檔案
修改 vim core-site.xml
修改 hadoop-env.sh
修改 hdfs-site.xml
workers
Yarn高可用
修改 mapred-site.xml
修改 yarn-site.xml
啟動zookeeper叢集
在每台機器上啟動:
格式化namenode、zkfc
啟動hdfs
嘗試HA模式
此時再次檢視節點
一、CentOS7 hadoop3.3.1安裝(單機分布式、僞分布式、分布式
二、JAVA API實作HDFS
三、MapReduce程式設計執行個體
四、Zookeeper3.7安裝
五、Zookeeper的Shell操作
六、Java API操作zookeeper節點
(基于Zookeeper,NameNode高可用+Yarn高可用)
用Quorum Journal Manager或正常共享存儲
QJM的NameNode HA
一共三台虛拟機,分别為master、worker1、worker2;
namenode三台上都有,resourcemanager在worker1,woker2上。
master
woker1
worker2
NameNode
yes
DataNode
no
JournalNode
NodeManager
ResourceManager
Zookeeper
ZKFC
因為沒有重新建立虛拟機,是在原本的基礎上修改。是以名稱還是hadoop1,hadoop2,hadoop3 <code>hadoop1 = master</code> <code>hadoop2 = worker1</code> <code>hadoop3 = worker2</code>
參考:四、Zookeeper3.7安裝
core-site.xml:
上面指定 zookeeper 位址中的Hadoop1,hadoop2,hadoop3換成你自己機器的主機名(要先配置好主機名與 IP 的映射)或者 ip
hadoop-env.sh
在使用叢集管理腳本的時候,由于使用ssh進行遠端登入時不會讀取/etc/profile檔案中的環境變量配置,是以使用ssh的時候java指令不會生效,是以需要在配置檔案中顯式配置jdk的絕對路徑(如果各個節點的jdk路徑不一樣的話那hadoop-env.sh中應改成本機的JAVA_HOME)。 hadoop 3.x中對角色權限進行了嚴格限制,相比于hadoop 2.x要額外對角色的所屬使用者進行規定。 此處僅為搭建HDFS叢集,如果涉及到YARN等内容的話應一并修改對應yarn-env.sh等檔案中的配置 在腳本末尾添加以下内容:
hdfs-site.xml
要建立journaldata檔案夾
在hadoop 2.x中這個檔案叫slaves,配置所有datanode的主機位址,隻需要把所有的datanode主機名填進去就好了
都修改好了,就分發給其他叢集節點
(在hadoop/etc路徑下)
scp /export/servers/hadoop-3.3.1/etc/hadoop/* hadoop2:/export/servers/hadoop-3.3.1/etc/hadoop/
scp /export/servers/hadoop-3.3.1/etc/hadoop/* hadoop3:/export/servers/hadoop-3.3.1/etc/hadoop/

首先,在所有虛拟機上啟動journalnode:
都啟動完畢之後,在master(hadoop1)節點上,格式化namenode
因為之前搭建過完全分布式,是以格式化一次namenode 但是,叢集中的datanode,namenode與/current/VERSION/中的<code>CuluserID</code>有關 是以再次格式化,并啟動,其他兩個節點同步格式化好的namenode并不沖突 formatZK同理
然後單獨啟動namenode:
然後,在另外兩台機器上,同步格式化好的namenode:
應該能從master上看到傳輸資訊。
傳輸完成後,在master節點上,格式化zkfc:
在master節點上,先啟動dfs:
然後啟動yarn:
啟動mapreduce任務曆史伺服器:
可以看到各個節點的程序啟動情況:
如果datanode未啟動
是版本号不一緻産生的問題,那麼我們就單獨解決版本号的問題,将你格式化之後的NameNode的VERSION檔案找到,然後将裡面的clusterID進行複制,再找到DataNode的VERSION檔案,将裡面的clusterID進行替換,儲存之後重新開機
首先看看各個namenode主機狀态:
可以看到,有兩個standby,一個active。
在active的master節點上,kill掉namenode程序:
可以看到,nn1已經切換為active,Hadoop 高可用叢集基本搭建完成。
本文來自部落格園,作者:李好秀,轉載請注明原文連結:https://www.cnblogs.com/lehoso/p/15591387.html