Hadoop系列之原理與架構

一、Hadoop項目架構

Hadoop框架是用來解決數據離線批處理問題的框架,其中最核心的是HDFS和MapReduce,HDFS是架構在Hadoop之上的分佈式文件系統,MapReduce是架構在Hadoop之上用來做計算的框架。

hadoop兩個核心:HDFS和MapReduce

用途:解決分佈式存儲和分佈式存儲。

特點:高可靠性、高效性、可擴展性、成本低(普通PC機都能構建集羣)

應用:Google、Facebook等,用於日誌處理、批處理、離線處理

 

架構:離線分析:MR、Hive、Pig

實時查詢:Hbase

BI分析:Mahout

分佈式文件存儲系統HDFS

底層數據源

Hadoop項目結構:

 

底層:

HDFS:分佈式文件系統,負責數據的存儲。

Yarn:存儲之後要進行相關處理,因此需要一個資源管理和調度,(YARN),在Hadoop2.0,MapReduce作爲離線處理。

計算分析工具:MapReduce、Spark、TeZ

TeZ(DAG計算)、Spark(內存計算)。

MapReduce是基於磁盤的,而Spark的計算過程是基於內存的,因此速度效率快很多。

MapReduce:做離線的批處理

Hive:數據倉庫,用來做決策分析,歷史記錄都存在數據倉庫當中,數據是多維的,可以用來做數據分析。屬於Hadoop平臺上的數據倉庫,可以用SQL語句操作。Hive會把SqL語句轉換成MapReduce作業。

Pig:流數據處理,提供了類似sql語句的查詢,輕量級的編程語言。

Oozie:作業流調度系統

Zookeeper:集羣管理、分佈式鎖

HBase:列族數據庫,Hadoop上的非關係型數據庫

Flume:日誌相關收集,(美團)

Sqoop:完成數據導入導出(數據庫ELT工具)。關係型數據庫到HDFS、HBase、Hive互導

最上層:Ambari部署工具,Hadoop快速部署工具

二、Hadoop優化

侷限和不足:抽象層次低,需人工編碼、表達能力有限、難以看到程序整體邏輯、執行迭代操作效率低、開發者需要自己管理作惡之間的依賴、資源浪費、實時性差

優化與發展主要體現在兩個方面:1、一方面:Hadoop自身兩大核心組件

2、二方面,加入其它的組件如pig、spark、kafka等。

 

 

 

HDFS新特性:HDFS HA:解決HDFS1.0面臨的單點故障問題,兩個名稱節點,一個活躍,一個待命,通過Zookeeper來管理,保持只有一個活躍節點的狀態,它的作用是實時維護分佈式文件系統的元數據信息。一旦節點出故障,即切換到待命狀態的名稱節點,並通過數據節點不斷向活躍名稱節點和待命名稱節點來實時的彙報自己的信息

 

HDFS Federation:設計可解決單名稱節點存在的問題

 

HDFS2.0 HA

主備NameNode 主NameNode 是active備用Namenode是standby狀態。待命狀態。

解決單點故障

主NameNode對外提供服務,備NameNode 同步主NameNode元數據,以待切換,所有DataNode同時向兩個NameNode彙報數據塊信息。

兩種切換選擇:手動切換(命令行)、自動切換(基於Zookeeper實現)

-基於Zookeeper自動切換方案

HDFS2.0 Federation

 

三、YARN

新引入的資源管理系統

核心思想:1、將MRv1中的JobTracker的資源管理和任務調度分開

2、兼容第三方計算框架。

Resource Manager、Node Manager

MapReduce作業是客戶端需要執行的一個工作單元:包括輸入數據、MapReduce程序和配置信息。主要是map任務和reduce任務,運行在集羣的節點上並通過yarn進行調度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章