慕課網10小時大資料入門筆記

xiaoliuyiting發表於2019-01-12

目錄

 

一、hadoop

二、HDFS

2.1 什麼是HDFS

2.2 設計目標

2.3 HDFS架構

2.3.1NN:

2.3.2DN:

三、YARN

3.1Yarn產生背景

3.2 yarn產生 

3.3 Yarn的架構:

四、MapReduce

4.1MapReduce概述

4.2MapReduce程式設計模型

五、hadoop優勢

1、高可靠性

2、高擴充套件性

3、其他

狹義的Hadoop

廣義的hadoop

六、Zookeeper

七、Flume

八、sqoop

九、離線資料處理流程


一、hadoop

官網:http://hadoop.apache.org/

The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.

The project includes these modules:

  • Hadoop Common: The common utilities that support the other Hadoop modules.
  • Hadoop Distributed File System (HDFS™): A distributed file system that provides high-throughput access to application data.
  • Hadoop YARN: A framework for job scheduling and cluster resource management.
  • Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.

 

二、HDFS

  • 擴充套件性&容錯性&海量資料儲存
  • 將檔案切分成指定大小的資料塊,並以多副本的儲存在多個機器上
  • 資料切分、多副本、容錯等操作對使用者是透明的

先對某個檔案進行拆分,每個塊128M

2.1 什麼是HDFS

  • Hadoop實現了一個分散式檔案系統(Hadoop Distributed File System),簡稱HDFS
  • 源自於Google的GFS論文

2.2 設計目標

  1. 非常巨大的分散式檔案系統
  2. 執行在廉價的硬體上
  3. 易擴充套件、為使用者提供效能不錯的檔案儲存服務

2.3 HDFS架構

  1. 1個Master(NameNode /NN)  帶 N個Slaves(DataNode/DN)

         1個檔案會被拆分成多個Block

          blocksize:128M(CDH預設)

          130M ==》2個block :128M和2M

2.3.1NN:

  1. 負責客戶端請求的響應
  2. 負責後設資料(檔案的名稱、副本系數、block存放的DN)的管理

2.3.2DN:

  1. 儲存使用者檔案對應的資料塊(Block)
  2. 要定期向NN傳送心跳資訊,彙報本身及其所有的block資訊,健康情況

 A typical deployment has a dedicated machine that runs only the NameNode software. Each of the other machines in the cluster runs one instance of the DataNode software. 

NN+多個DN

建議NN和DN部署在不同的節點上

 

三、YARN

  • YARN(Yet Another Resource Negotiator)
  • 負責整個叢集的資源的管理和排程
  • 擴充套件性&容錯性&多框架資源統一排程

3.1Yarn產生背景

MapReduce1.X(單點故障,節點壓力大不易擴充套件)

JobTracker:

負責資源管理和作業排程

TaskTracker:

定期向JT彙報本節點的健康狀況、資源使用情況、作業執行情況

接收來自JT的命令:啟動任務/殺死任務

資源利用率&運維成本

3.2 yarn產生 

yarn:不同計算框架可以共享同一個HDFS叢集上的資料,享受整體的資源排程

 

XXX on YARN 的好處:與其他計算框架共享叢集資源,按資源需要分配,進而提高叢集資源的利用率

XXX:Spark/MapReduce/Storm/Flink

 

3.3 Yarn的架構:

http://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.html

1)ResourceManager (RM

           整個叢集同一時間提供服務的1RM只有一個,負責叢集資源的統一管理和排程

           處理客戶端的請求:提交一個作業,殺死一個作業

            監控我們的NM,一旦某個NM掛了,那麼該NM上執行的任務需要告訴我們的AM來如何處理(如重啟)

2)  NodeManager (NM)

           整個叢集中有多個,負責自己本身節點資源管理和使用

           定時向RM彙報本節點的資源使用情況

            接收並處理來自RM的各種命令:啟動Container

            處理來自AM的命令

            單個節點的資源管理

3)  ApplicationMaster (AM)

             每個應用程式對應一個:MR、Spark、負責應用程式的管理

             為應用程式向RM申請資源(core、memory),分配給內部task

             需要與NM通訊:啟動/

              停止task,task試執行在container裡面,AM也是執行在container裡面

4)  Container

              封裝了CPU、Memory等資源的一個容器

               是一個任務執行環境的抽象

5)  Client

             提交作業

             檢視作業的執行進度

             殺死作業

               

MapReduce NextGen Architecture

四、MapReduce

擴充套件性&容錯性&海量資料離線處理(延時比較大)

4.1MapReduce概述

 

 

4.2MapReduce程式設計模型

 

MapReduce架構

MapReduce程式設計

combiner不適用於平均數 

五、hadoop優勢

1、高可靠性

資料儲存:資料塊多副本

資料計算:重新排程作業計算

2、高擴充套件性

儲存計算資源不夠時,可以橫向的線性擴充套件機器

一個叢集中可以包含數以千計的節點

3、其他

儲存在廉價機器上降低成本

成熟的生態圈

 

狹義的Hadoop

是一個適合大資料分散式儲存(HDFS),分散式計算(MapReduce),資源排程(YARN)的平臺

廣義的hadoop

指的是Hadoop生態系統,Hadoop生態系統是一個很龐大的概念,hadoop是其中最重要的一個部分;生態系統中的

每一個子系統只解決某一個特定的問題域,不搞統一型的一個全能系統,而是小而精的多個小系統

 

六、Zookeeper

分散式的協調服務

七、Flume

八、sqoop

九、離線資料處理流程

相關文章