Hadoop第0部分:分佈式存儲計算平臺及Hadoop入門

一、課程目標

  1. 分佈式設計思想【瞭解】
  2. 大數據業務架構及技術生態【瞭解】
  3. Hadoop的起源發展及功能【掌握】
  4. HDFS的設計思想及架構【掌握】
  5. MR及YARN的設計思想【瞭解】

二、分佈式設計思想

1、分佈式本質

  • 集羣:資源整合的問題
    • 單臺機器:CPU、內存、網絡、硬盤
      • 有限,限制了性能
    • 集羣:將多臺機器的資源進行整合
      • 整體
  • 分佈式服務:將硬件集羣變成一個整體
    • 本質:將任務進行拆分,依靠集羣來實現分佈式存儲和計算,最終結果會合並
    • 結果:整體

2、分佈式的設計

  • 存儲

在這裏插入圖片描述

  • 計算

在這裏插入圖片描述

3、分佈式架構

  • 普通分佈式架構

在這裏插入圖片描述

  • 每臺Tomacat是獨立的

  • 主從分佈式架構

    在這裏插入圖片描述

    • 主與從之間是有聯繫的

三、大數據業務架構及技術生態

1、大數據應用

  • 應用本質:“騙錢”
  • 大數據分析
    • 分析結果的好壞:運營
    • 分析用戶的喜好
  • 用戶畫像
  • 推薦系統
  • 機器學習

2、大數據技術本質

  • 本質:對數據進行處理

3、大數據業務流程與大數據技術生態

在這裏插入圖片描述

四、Hadoop的起源發展及功能

1、Hadoop的起源

  • 谷歌做搜索引擎,發現問題:爬取到的數據太大,無法實現存儲和計算
  • 谷歌研發:GFS = 【最早期的成熟的分佈式文件系統】,併發布了該框架的設計論文
  • lucene子項目:Nutch項目
    • 自己寫代碼實現了這個框架:NDFS
  • 谷歌發佈MapReduce論文:分佈式計算
    • 自己寫代碼實現了這個框架:MapReduce
  • 將NDFS與MapReduce組合成新的框架:Hadoop v1 [logo:大象]
    • HDFS
    • MapReduce

2、Hadoop的發展

  • Apache的官網:https://hadoop.apache.org/old/
  • Hadoop生態
    • 動物園
  • 版本
    • 最新版本:3.x
    • 市場佔比:2.x
  • 整個大數據的發展中,目前沒有任何一個工具能替代Hadoop
    • 有些工具能替代Hadoop中的一個功能

3、Hadoop的功能及應用場景

  • Hadoop定義:分佈式存儲計算框架

  • 功能:

    • 大數據存儲
    • 大數據計算
  • 應用場景

    • 所有大數據分佈式平臺
  • 官網的定義

    The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
    開源  可靠、可擴展分佈式計算
    The Apache Hadoop software library is a framework that allows for the 
    distributed processing 
    分佈式處理
    of large data
    大數據
    sets across clusters of computers using simple programming models. 
    允許使用簡單的編程模式進行集羣式的計算
    It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.
    
    ||
    
    用最廉價【硬件配置比較低】的機器實現大數據的存儲和計算
    
    

4、Hadoop的模塊

  • 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 v2出現的一個組件
    • 解決問題:資源管理和任務調度
  • Hadoop MapReduce: A YARN-based system for parallel processing of large data sets.

    • 計算模型

      • Hadoop v1:分佈式計算框架

        • 資源管理

        • 任務調度

        • 計算

        • 分佈式主從
          -主節點:JobTracker

          -從節點:TaskTracker

      • Hadoop v2:分佈式計算模型

        • 計算的邏輯
    • 模型:方式

      • 汽車這種方式
    • 框架:需求:我要去北京

      • 買票:買飛機、買汽車、買高鐵
      • 坐車
      • 到達

五、HDFS的設計思想及架構

1、HDFS的功能及本質

  • Hadoop的分佈式文件系統

    • 機器:需要操作系統
    • 操作系統: 內核 + shell[用戶交互:文件系統 ]
    • 想要讀寫硬盤:必須經過文件系統
  • 本質:將多臺機器的文件系統進行邏輯合併

    • 最終數據會寫入每臺機器的某一個目錄中
  • 通過主動拆分數據和合並數據來實現分佈式

在這裏插入圖片描述

2、HDFS的設計及架構

  • 主從架構
    • 主:NameNode:管理
      • 負責接客:接受所有客戶端的請求【讀或者寫】
      • 管理:
        • 管理從節點:如果有從節點故障了,不能分配任務,用於監控分配任務
          • 心跳機制
        • 管理數據安全
      • 維護元數據【metadata】
        • 記錄了每個文件對應的塊,以及每個塊所在機器的位置
        • 內存
    • 從:DataNode:幹事【讀和寫】
      • 每一臺存儲的節點都會有一個DataNode進程,負責與當前文件系統進行交互
      • 每一個DataNode負責真正的讀寫的 實現
  • 特點
    • 分塊:用於實現分佈式存儲
      • 默認按照128M來分塊
    • 副本:DataNode存儲塊的時候,會複製多份
      • 默認複製2份,總共存3份

在這裏插入圖片描述

六、MR及YARN的設計思想

1、MapReduce的功能及設計理念

  • 作爲一種計算方式存在
    • 任何一種方式都是有特定的流程
      • 坐飛機:買票、安檢、候機、登機、飛行、目的地
      • 做汽車:買票、安檢、等車、上車、陸地、目的地
  • 流程
    • 兩個部分:Map階段和Reduce階段
    • 五大階段:數據處理【讀數據、處理數據、輸出結果】
      • Input:讀取數據
      • Map:處理邏輯1
        • 可以自己定義,默認爲空
        • map
      • Shuffle:默認的邏輯不爲空,可以自定義
      • Reduce:處理邏輯2
        • 可以自己定義,默認爲空
        • reduce
      • Output:輸出結果
  • 分佈式計算模型
    • Map任務:啓動多個MapTask進程來完成
    • Reduce任務:啓動多個ReduceTask進程來完成
      • 默認爲1個

2、YARN的功能及設計理念

  • 分佈式主從結構

    • 主:ResourceManager:管理

      • 1-接客

        2-管理:從節點

        3-資源管理任務調度

    • 從:NodeManager:幹事【啓動進程實現計算】

  • 資源管理:

    • 將所有節點的資源進行整合,成爲一個整體
    • 每個程序需要用資源,資源怎麼分配
      • 每個task在每臺機器上能使用多少資源,resourcemanager負責分配
  • 任務調度:

    • 默認程序類型:MapReduce
    • 運行程序,每個程序就是一個任務
    • 如果提交了多個程序,誰先執行,誰後執行

在這裏插入圖片描述

3、Hadoop

  • Hadoop:分佈式存儲計算框架
  • 模塊
    • HDFS
      • 主從結構
        • NameNode
          • 接客
          • 管理:
            • 從節點:心跳機制
            • 數據安全:彙報機制,每個從節點會定時彙報自己所存儲的 塊的信息
          • 維護元數據
            • 用於提供文件檢索以及數據的安全校驗
        • DataNode
          • 負責真正的讀寫
          • 負責與當前機器的文件系統
    • MapReduce:在Hadoop2中作爲模型,不作爲框架
      • 五大階段
        • Input
        • Map
        • Shuffle
        • Reduce
        • Output
      • 分佈式計算模型
        • MapTask:分
        • ReduceTask:合
  • YARN:分佈式資源管理及任務調度工具
    • 主從
      • ResourceManager:整個集羣的資源管理和任務調度
      • Nodemanager:負責計算節點上的資源管理
    • 資源管理
      • 將集羣所有的資源在邏輯上進行合併
      • 管理每一個計算節點能夠使用的資源
    • 任務調度
      • 當提交多個任務進行計算時,計算的優先級
發佈了8 篇原創文章 · 獲贊 1 · 訪問量 1337
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章