1. 程式人生 > >hadoop學習筆記(一)

hadoop學習筆記(一)

存儲 實時 管理層 核心 架構圖 數據服務 pre oop nod

一、hadoop的概念

二、hadoop的發展歷史

三、hadoop1.x的生態系統

技術分享圖片

HBase:實時分布式數據庫

  相當於關系型數據庫,數據放在文件中,文件就放在HDFS中。因此HBase是基於HDFS的關系型數據庫。實時性:延遲非常低,實時性高。

  舉栗:在近18億條數據的表中查詢1萬條數據僅需1.58s,這是普通數據庫(Oracle集群,Mysql集群)無法辦到的。

HDFS:分布式文件系統

MapReduce:分布式計算框架

Zookeeper:分布式協作服務

  協作HBase存儲、管理、查詢數據,Zookeeper是一個很好的分布式協作服務框架。

Hive
:數據倉庫

  數據倉庫

  比如給你一塊1000平方米的倉庫,讓你放水果。如果有春夏秋冬四季的水果,讓你放在某一個分類中。但是水果又要分為香蕉、蘋果等等。然後又要分為好的水果和壞的水果。。。。。

  因此數據倉庫的概念也是如此,他是一個大的倉庫,然後裏面有很多格局,每個格局裏面又分小格局等等。對於整個系統來說,比如文件系統。文件如何去管理?Hive就是來解決這個問題。

  Hive

  分類管理文件和數據,對這些數據可以通過很友好的接口,提供類似於SQL語言的HiveQL查詢語言來幫助你進行分析。其實Hive底層是轉換成MapReduce的,寫的HiveQL進行執行的時候,Hive提供一個引擎將其轉換成MapReduce再去執行。

  Hive設計目的:方便DBA很快地轉到大數據的挖掘和分析中。

Pig:數據流處理

  基於MapReduce的,基於流處理的。寫了動態語言之後,也是轉換成MapReduce進行執行。和Hive類似。

Mahout:數據挖掘庫

  基於圖形化的數據碗蕨。

Sqoop:數據庫ETL工具

  ELT:提取 --> 轉換 --> 加載。

  從數據庫中獲取數據,並進行一系列的數據清理和清洗篩選,將合格的數據轉換成一定格式的數據進行存儲,將格式化的數據存儲到HDFS文件系統上,以供計算框架進行數據分析和挖掘。

  格式化數據:

    |- TSV 格式:每行數據的每列之間以制表符(tab \t)進行分割

    |- CVS 格式:每行數據的每列之間以逗號進行分割

  Sqoop:將關系型數據庫中的數據與HDFS(HDFS 文件,HBase中的表,Hive中的表)上的數據進行相互導入導出。

Flume:日誌收集工具

  將大的集群上面的每臺機器的日誌收集起來,自動地放到你指定的HDFS文件系統的某個路徑中去。

Ambari:安裝、部署、配置和管理工具

  提供一個圖形化工具對集群進行安裝、部署、配置及管理,無需手動在命令行操作。

四、hadoop2.x的生態系統

技術分享圖片

YARN:集群資源管理系統

  對整個集群每臺機器的資源進行管理,對每個服務、每個job、每個應用進行調度(CPU等)。

HDFS2:分布式文件系統

  增強了一些特性,最主要的就是NameNode的單節點故障和NameNode的橫向擴展。 

Tez:DAG計算框架

Storm:流式計算框架

五、hadoop1.x組成

對於分布式系統和框架的架構來說,一般分為兩部分:

  第一部分:管理層,用於管理應用層的。

  第二部分:應用層(工作)。

HDFS核心後臺守護進程:

技術分享圖片

  NameNode:元數據服務器

    NameNode是主節點,存儲文件的元數據如文件名文件目錄結構文件屬性(生成時間,副本數,文件權限),以及每個文件的塊列表和塊所在DataNode等。

    屬於管理層,用於管理數據的存儲。

  Secondary NameNode:輔助元數據服務器

    用來監控HDFS狀態的輔助後臺程序,每隔一段時間獲取HDFS元數據的快照。

    屬於管理層,輔助NameNode進行管理。

  DataNode:塊存儲

    在本地文件系統存儲文件塊數據,以及塊數據的校驗和

    屬於應用層,用於進行數據的存儲,被NameNode進行管理。要定時向NameNode進行工作匯報,執行NameNode分配分發的任務。

MapReduce,分布式進行計算框架:

  JobTracker:任務調度員

    負責接收用戶提交的作業,負責啟動跟蹤任務執行。

    屬於管理層,管理集群資源和對任務進行資源調度,監控任務的執行。

  TaskTrackers:任務執行

    負責執行由JobTracker分配的任務,管理各個任務在每個節點上的執行情況

    屬於應用層,執行JobTracker分配分發的任務,並向JobTracker匯報工作情況。

六、HDFS架構圖

技術分享圖片

七、MapReduce架構圖

技術分享圖片

hadoop學習筆記(一)