hadoop 生態圈介紹

@(blog)

簡介

Hadoop 是一個能夠處理海量數據的分布式系統基礎軟件框架,理論上能夠通過增加計算節點以處理無限增長的數據,由java寫成。其作者是 Doug Cutting,得益于谷歌的Map/Reduce計算模型和GFS分布式文件系統,Hadoop實現了其核心組件HDFS和MapReducce。Hadoop 是目前世界上大數據行業的主流軟件框架。其生態圈非常龐大,并且社區很活躍。Hadoop本身僅有hadoop-common + hdfs + mapreduce 組成,hadoop2.x以后增加了yarn體系。

hadoop 的集群模式

hadoop 集群,從細的方面來說,總共分為四種模式:

  1. Single Node Cluster,即偽分布式模式(單機模式)
  2. Full Distributed Cluster,即完全分布式集群模式
  3. HA Cluster,即高可用集群模式
  4. HA + Federation Cluster,即高可用聯邦集群模式

每一種方式都有其特定的使用場景,但一般數據規模很大的企業,都會選擇HA+Federation模式,下面簡要地介紹一下每一種模式的情況:

  1. 單機模式,將hadoop安裝在一臺機器上,通過進程來模擬各主機節點的協作和運行,其可靠性、穩定性都是非常差的,并且具備糟糕的性能效率,沒有團隊會在生產環境使用它。那么它是否就沒有用呢?也不是的,通常使用這種模式進行開發和調試工作。
  2. 完全分布式模式,將hadoop部署在至少兩臺機子上,數據塊副本的數量通常也設置為2以上。該模式的集群,無論規模多大,只擁有1臺Namenode節點,且也是唯一Active的工作節點。Namenode(簡稱NN)相當于hadoop文件系統的管家,對集群的所有文件訪問和操作都經由NN統一協調管理??上?,當集群規模越來越龐大時,僅有一臺NN,必定是不堪重負,那么它很容易就會掛掉,一旦掛掉,不僅集群立即癱瘓,還很容易造成數據丟失。另外,該模式通常ResourceManager(RM)也僅部署1臺,ResourceManager是yarn的管家,主要管理任務的執行,例如MapReduce任務。與NN類似,當集群提交的作業過于繁重時,其同樣面臨超負載的問題。那么此模式是否也無用武之地呢?也不是的,視業務、資金等情況而定,因為該模式日后也可以安全升級成高可用模式。
  3. 高可用模式,一般來說,分為NN的高可用和RM的高可用。在完全分布式的基礎上,增加備用NN和RM節點。NN高可用,也就是集群里面會部署兩臺NN(最多也只能兩臺),以形成主備NN節點,達到高可用的目的。RM高可用與NN高可用類似,也是在集群里部署備用RM節點。不過此種模式下集群里面依然只有一臺NN/RM處于Active工作狀態,另一臺則處于Standby的等待狀態。當Active的NN/RM出現問題無法工作時,Standby的那臺則立即無縫切入,繼續保障集群正常運轉。這種模式是很多企業都使用的,但是依然有缺陷。什么缺陷呢?雖然集群的可用性問題解決了,但是性能瓶頸依然存在——僅有一臺NN/RM,由于無法橫向擴展,其很可能會超負載運行。
  4. 高可用聯邦模式,解決了單純HA模式的性能瓶頸。單純的HA模式NN和RM之間雖然配置了HA,但是依舊僅有一臺NN或RM同時運行,這可能會導致了NN或RM的負載過重,從而造成整個集群的性能瓶頸。而聯邦模式將整個HA集群再劃分為兩個以上的集群,不同的集群之間通過Federation進行連接,不同集群間可以共享數據節點,也可以不共享,可以互相訪問和操作數據,也可以不。這樣便做到了HA集群的橫向擴展,從而移除了單純HA模式同時僅有1臺NN/RM工作所帶來的性能瓶頸。Federation模式,相當于在多個集群之上又構建了一個集群層次,從數據訪問的角度看,也可以簡單的將其理解為一臺路由器,而每一個HA集群則是單獨的網絡,不同網絡間通過Federation路由器進行溝通。此模式是目前hadoop生態中最高的一種模式,適用于規模較大的企業。

組件體系

hadoop
hdfs
mapreduce
yarn
zookeeper
hive
hbase
sqoop
pig
Impala
dubbo
kudu
storm
kafka
flume
elasticsearch elk
mahout
ambari
avro
cassandra
chukwa
tez

spark
spark-streaming
spark-sql
spark-MLlib

概念

hadoop hdfs mapreduce fsimage edits namenode-metadata
yarn zookeeper
Namenode Secondary-Namenode Datanode
ResourceManager(JobTracker)
NodeManager(TaskTracker)
ApplicationManager
ApplicationMaster
Container
JobHistoryServer
JobClient
JournalNode

hadoop1.x hadoop2.x HA federation

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容