Hadoop 生態圈介紹

簡介

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

hadoop 的集羣模式

hadoop 集羣,從細的方面來講,總共分爲四種模式:node

  1. Single Node Cluster,即僞分佈式模式(單機模式)
  2. Full Distributed Cluster,即徹底分佈式集羣模式
  3. HA Cluster,即高可用集羣模式
  4. HA + Federation Cluster,即高可用聯邦集羣模式

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

  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 federationelasticsearch

以上衆多組件的概念介紹,有機會注意補充~分佈式

相關文章
相關標籤/搜索