----2019年2月版:Hadoop3HA高可用NoSQL2+3集羣架構
對於Hadoop&Hadoop3新特性不瞭解可參考:
關於本文:
工作中搭建了Hadoop3的2+3可擴展HA高可用NoSQL生產集羣,在此分享一下
本文主要從集羣搭建的前期準備工作入手:業務需求、集羣環境、架構設計、版本兼容等
由於是最新版hadoop3,網上現有指導過少,本次成功搭建,說明該架構具有可行性
先上版本選型:
組件 |
JDK |
Hadoop |
Zookeeper |
Hbase |
版本 |
1.8 |
3.1.2 |
3.4.12 |
2.0.4 |
目錄:
業務需求
- 最新版:項目要求爲各組件爲最新版
- HA高可用: 使用zookeeper組件支撐HA高可用
- NoSQL存儲:使用Hbase組件支撐高性能非關係數據庫存儲
集羣環境
節點 |
系統 |
內存 |
硬盤 |
目錄 |
Master1 |
CentOS7.4 |
5.6G |
200G |
/Hadoop |
Master2 |
||||
Slave1 |
3.6G |
1000G |
||
Slave2 |
||||
Slave3 |
組件介紹
Hadoop
- 分佈式大數據文件系統,做集羣存儲支撐,一般爲大數據的地基
Zookeeper
- 分佈式集羣協調管理器,做HA支撐,可以支撐多種集羣的HA方案
Hbase
- 非結構化分佈式數據庫代表,特點是列存儲、高性能、稀疏存儲
架構設計
架構設計表
節點 \ 組件 |
HDFS |
ZOOKEEPER |
YARN |
HBASE |
|||||
角色 |
NN |
DN |
JN |
ZKFC |
ZK |
RM |
NM |
HM |
HRS |
Master1 |
1 |
|
|
1 |
1 |
1 |
|
1 |
|
Master2 |
1 |
|
|
1 |
1 |
1 |
|
1 |
|
Slave1 |
|
1 |
1 |
|
1 |
|
1 |
|
1 |
Slave2 |
|
1 |
1 |
|
1 |
|
1 |
|
1 |
Slave3 |
|
1 |
1 |
|
1 |
|
1 |
|
1 |
架構說明
- NN:NameNode,是HDFS的管理節點
- DN:DataNode,是HDFS的數據節點
- JN:是HDFS的NN在HA場景的共享存儲節點
- ZKFC:是Zookeeper監控NN的服務,與NN一一對應
- ZK:Zookeeper集羣,需單數,自身通過選舉產生leader
- RM:ResourceManager,是Yarn本身的管理節點
- NM:NodeManager,Yarn中管控slaver的節點
- HM:HMaster,Hbase的管理節點
- HRS:HRegionServer,Hbase節點,響應用戶I/O,與HDFS交互。
版本兼容
說明:
- 當前時間節點爲2019年2月
- 相關截圖於相應官網獲取
兼容依賴關係
- Hadoop:依賴JDK,支撐Hbase。
- Zookeeper:僅依賴JDK。
- Hbase:依賴JDK,依賴Hadoop。
Hadoop
最新的穩定版爲,3.1.2
Zookeeper
3.4.12是最新穩定版本,依賴jdk8
Hbase
2.0.4是倒數第二個發行版,與Hadoop3.1.X兼容
網上建議不要用最新的(2.1.3)與太久的(1.x)
兼容JDK表:
兼容Hadoop表:
Spark擴展
spark支持hadoop2.7+
對於Hadoop&Hadoop3新特性不瞭解可參考: