文章目錄
- 從Hadoop框架討論大資料生態
- Hadoop 是什么(一是)
- Hadoop發展史(二知)
- Hadoop三大版本(三版)
- Hadoop的優勢(4高)
- Hadoop的組成(關于吾的自身)
- Hadoop1.x和Hadoop2.x的區別
- HDFS 架構概述
- Yarn架構概述
- MapReduce架構描述
- 大資料技術生態系統
從Hadoop框架討論大資料生態
在上一章,我們討論了什么是大資料,相信,了解了大資料一番,肯定不免得知道Hadoop集群框架,今天我們一起來討論討論Hadoop集群框架吧,淺談什么是大資料_pier~呀的博客-CSDN博客
Hadoop 是什么(一是)
- Hadoop是一個由Apache基金會所開發的分布式系統基礎架構,
- 主要解決,海量資料的存盤和海量資料的分析計算問題,
- 廣義上來說,Hadoop通常是指一個更廣泛的概念——Hadoop生態圈,

Hadoop發展史(二知)
Hadoop最早起源于Nutch,Nutch的設計目標是構建一個大型的全網搜索引擎,包括網頁抓取、索引、查詢等功能,但隨著抓取網頁數量的增加,遇到了嚴重的可擴展性問題——如何解決數十億網頁的存盤和索引問題,
2003年、2004年谷歌發表的兩篇論文為該問題提供了可行的解決方案,
——分布式檔案系統(GFS),可用于處理海量網頁的存盤
——分布式計算框架MAPREDUCE,可用于處理海量網頁的索引計算問題,
Nutch的開發人員完成了相應的開源實作HDFS和MAPREDUCE,并從Nutch中剝離成為獨立專案HADOOP,到2008年1月,HADOOP成為Apache頂級專案(同年,cloudera公司成立),迎來了它的快速發展期,
狹義上來說,hadoop就是單獨指代hadoop這個軟體,
廣義上來說,hadoop指代大資料的一個生態圈,包括很多其他的軟體,
這里來源于百度知識,具體想要了解的可以自行百度,
Hadoop三大版本(三版)
Hadoop三大發行版本:Apache、Cloudera、Hortonworks,
-
Apache版本最原始(最基礎)的版本,對于入門學習最好,
- 官網地址:http://hadoop.apache.org/releases.html
- 下載地址:https://archive.apache.org/dist/hadoop/common/
-
Cloudera內部集成了很多大資料框架,對應產品CDH,
- 官網地址:https://www.cloudera.com/downloads/cdh/5-10-0.html
- 下載地址:http://archive-primary.cloudera.com/cdh5/cdh/5/
-
Hortonworks檔案較好,對應產品HDP,
- 官網地址:https://hortonworks.com/products/data-center/hdp/
- 下載地址:https://hortonworks.com/downloads/#data-platform
Hadoop的優勢(4高)
-
高可靠性:Hadoop底層維護多個資料副本,所以即使Hadoop某個計算元素或存盤出現故障,也不會導致資料的丟失
-
高擴展性:在集群間分配任務資料,可方便的擴展數以千計的節點,
-
高效性:在MapReduce的思想下,Hadoop是并行作業的,以加快任務處理速度,
-
高容錯性:能夠自動將失敗的任務重新分配,
Hadoop的組成(關于吾的自身)
Hadoop1.x和Hadoop2.x的區別
在Hadoop1.x時代,Hadoop中的MapReduce同時處理業務邏輯運算和資源的調度,耦合性較大,在Hadoop2.x時代,增加了Yarn ,Yarn只負責資源的調度,MapReduce只負責運算,

HDFS 架構概述
-
NameNode(nn):存盤檔案的元資料,如檔案名,檔案目錄結構,檔案屬性(生成時間、副本數、檔案權限),以及每個檔案的塊串列和塊所在的DataNode等
-
DataNode(dn):在本地檔案系統存盤檔案塊資料,以及塊資料的校驗和,
-
Secondary NameNode(2nn):每隔一段時間對NameNode元資料備份,
他們之間的關系是怎樣的呢?

Yarn架構概述

從YARN的架構圖來看,它主要由ResourceManager和ApplicationMaster、NodeManager、ApplicationMaster和Container等組件組成,
ResourceManager(RM)
YARN分層結構的本質是ResourceManager,這個物體控制整個集群并管理應用程式向基礎計算資源的分配,ResourceManager 將各個資源部分(計算、記憶體、帶寬等)精心安排給基礎NodeManager(YARN 的每節點代理),ResourceManager還與 ApplicationMaster 一起分配資源,與NodeManager 一起啟動和監視它們的基礎應用程式,在此背景關系中,ApplicationMaster 承擔了以前的 TaskTracker 的一些角色,ResourceManager 承擔了 JobTracker 的角色,
主要作用:
1)處理客戶端請求;
2)啟動或監控ApplicationMaster;
3)監控NodeManager;
4)資源的分配與調度,
NodeManager(NM)
NodeManager管理一個YARN集群中的每個節點,NodeManager提供針對集群中每個節點的服務,從監督對一個容器的終生管理到監視資源和跟蹤節點健康,MRv1通過插槽管理Map和Reduce任務的執行,而NodeManager 管理抽象容器,這些容器代表著可供一個特定應用程式使用的針對每個節點的資源,YARN繼續使用HDFS層,它的主要 NameNode用于元資料服務,而DataNode用于分散在一個集群中的復制存盤服務,
主要作用:
1)單個節點上的資源管理;
2)處理來自ResourceManager上的命令;
3)處理來自ApplicationMaster上的命令,
ApplicationMaster(AM)
ApplicationMaster管理一個在YARN內運行的應用程式的每個實體,ApplicationMaster 負責協調來自 ResourceManager 的資源,并通過 NodeManager 監視容器的執行和資源使用(CPU、記憶體等的資源分配),請注意,盡管目前的資源更加傳統(CPU 核心、記憶體),但未來會帶來基于手頭任務的新資源型別(比如圖形處理單元或專用處理設備),從 YARN 角度講,ApplicationMaster 是用戶代碼,因此存在潛在的安全問題,YARN 假設 ApplicationMaster 存在錯誤或者甚至是惡意的,因此將它們當作無特權的代碼對待,
主要作用:
1)負責資料的切分;
2)為應用程式申請資源并分配給內部的任務;
3)任務的監控與容錯,
Container
對任務運行環境進行抽象,封裝CPU、記憶體等多維度的資源以及環境變數、啟動命令等任務運行相關的資訊,比如記憶體、CPU、磁盤、網路等,當AM向RM申請資源時,RM為AM回傳的資源便是用Container表示的,YARN會為每個任務分配一個Container,且該任務只能使用該Container中描述的資源,
要使用一個YARN集群,首先需要來自包含一個應用程式的客戶的請求,ResourceManager 協商一個容器的必要資源,啟動一個ApplicationMaster 來表示已提交的應用程式,通過使用一個資源請求協議,ApplicationMaster協商每個節點上供應用程式使用的資源容器,執行應用程式時,ApplicationMaster 監視容器直到完成,當應用程式完成時,ApplicationMaster 從 ResourceManager 注銷其容器,執行周期就完成了,
MapReduce架構描述
mapreduce是一個分布式運算程式的編程框架,是hadoop資料分析的核心. mapreduce的核心思想是將用戶撰寫的邏輯代碼和架構中的各個組件整合成一個分布式運算程式,實作一定程式的并行處理海量資料,提高效率.
MapReduce將計算一分為二,Map和Reduce,它巧妙的讓我們的計算就像做一道數學題一樣,把每一個大問題拆分為一個個小問題就是我們的Map階段,將每一個小問題解決后再合并起來就是我們的Reduce階段,和我們剪輯一樣,我們有很多的視頻集錦,可能并不是一個人拍的,我們把你和你物件的放在一起,這就是Map,你們的異地戀也是不一樣的風景呢!然后,可能女孩子需要儀式感,你就把你們兩的行程剪在一起,做成一個合集,這就是一個Reduce程序,最后你們的過年祝福就好了,
大資料技術生態系統

圖中涉及的技術名詞解釋如下:
-
Sqoop:Sqoop是一款開源的工具,主要用于在Hadoop、Hive與傳統的資料庫(MySql)間進行資料的傳遞,可以將一個關系型資料庫(例如 :MySQL,Oracle 等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關系型資料庫中,
-
Flume:Flume是一個高可用的,高可靠的,分布式的海量日志采集、聚合和傳輸的系統,Flume支持在日志系統中定制各類資料發送方,用于收集資料;
-
Kafka :Kafka是一種高吞吐量的分布式發布訂閱訊息系統;
-
Spark :Spark是當前最流行的開源大資料記憶體計算框架,可以基于Hadoop上存盤的大資料進行計算,
-
Flink:Flink是當前最流行的開源大資料記憶體計算框架,用于實時計算的場景較多,
-
Oozie:Oozie是一個管理Hdoop作業(job)的作業流程調度管理系統,
-
Hbase :HBase是一個分布式的、面向列的開源資料庫,HBase不同于一般的關系資料庫,它是一個適合于非結構化資料存盤的資料庫,
-
Hive :Hive是基于Hadoop的一個資料倉庫工具,可以將結構化的資料檔案映射為一張資料庫表,并提供簡單的SQL查詢功能,可以將SQL陳述句轉換為MapReduce任務進行運行, 其優點是學習成本低,可以通過類SQL陳述句快速實作簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析,
-
ZooKeeper :它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分布式同步、組服務等,
, 其優點是學習成本低,可以通過類SQL陳述句快速實作簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析,
- ZooKeeper :它是一個針對大型分布式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、分布式同步、組服務等,
加黑的是我們后面會學到的比較多的東西,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/404101.html
標籤:其他
