日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

大数据技术原理与应用学习笔记(八)

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 大数据技术原理与应用学习笔记(八) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大數據技術原理與應用學習筆記(八)

  • 本系列歷史文章
  • Hadoop再探討
    • Hadoop的優化與發展
      • Hadoop1.0到Hadoop2.0
      • 不斷完善的Hadoop生態系統
    • HDFS2.0新特性
      • HDFS HA(高可用性)
      • HDFS Federation
    • YARN——新一代資源管理調度框架
      • MapReduce1.0中的缺陷
      • YARN設計思路
      • YARN體系結構
        • ResourceManager
        • ApplicationMaster
        • NodeManager
      • YARN的工作流程
      • 與MapReduce1.0的對比
      • YARN的發展目標
    • Hadoop生態系統中具有代表性的功能組件
      • Pig
        • Pig的概念與特點
        • Pig的應用場景
      • Tez
        • Tez的概念與特點
      • Spark和Kafka
        • Spark
        • Kafka

本系列歷史文章

大數據技術原理與應用學習筆記(一)
大數據技術原理與應用學習筆記(二)
大數據技術原理與應用學習筆記(三)
大數據技術原理與應用學習筆記(四)
大數據技術原理與應用學習筆記(五)
大數據技術原理與應用學習筆記(六)
大數據技術原理與應用學習筆記(七)

Hadoop再探討

Hadoop的優化與發展

在Hadoop1.0中仍存在很多不足:

  • 抽象層次低,需人工編碼
  • 表達能力有限
  • 開發著自己管理Job間的依賴關系
  • 難以看到程序的整體邏輯
  • 執行迭代效率低
  • 資源浪費
  • 實時性差
    采取的改進措施如下:
  • 改進自身的核心組件(MapReduce和HDFS)
  • 其他組件的不斷豐富(Pig、Tez、Spark、Kafka)

Hadoop1.0到Hadoop2.0

Hadoop更新到2.0后,以下方面做出了很大更新:
HDFS:

  • 由原來的單一名稱節點(存在單點失效問題),增添設計了HDFS HA,提供名稱節點熱備份機制;
  • 由原來的單一命名空間(存在無法實現資源管理),增添設計了HDFS Federation來管理多個命名空間。
    MapReduce:
  • 由原來的資源管理效率低,增添設計了管理框架YARN。

不斷完善的Hadoop生態系統

在Hadoop的優化和發展中,越來越多的組件被包含在Hadoop生態系統中,使得Hadoop平臺的性能提升許多。

組件功能
Pig處理大規模數據的腳本語言,用戶只需編寫幾條語句,系統會自動轉換為MapReduce作業(可用來解決需人工編碼的不足)
Spark基于內存的分布式并行編程框架,具有較高的實時性,并且較好的支持迭代計算(可用來解決迭代效率低的不足)
Oozie工作流和協作服務引擎,協調Hadoop上運行的不同任務(解決開發者自己管理Job間依賴關系的不足)
Tez支持DAG作業的計算,對作業的操作進行重新分解和組合,形成DAG作業,減少不必要的操作(解決重復操作的不足)
Kafka分布式發布訂閱消息系統,一般作為企業大數據分析平臺的數據交換樞紐,不同類型的分布式系統可以接入到Kafka,實現和Hadoop各組件之間不同類型數據的實時高效交換(解決了Hadoop組件和其他產品間缺乏統一、搞笑的數據交換中介)

HDFS2.0新特性

HDFS HA(高可用性)

HDFS HA(High Availability)是為了解決單點故障問題。HA集群設置兩個名稱節點,“活躍(Active)”和“待命(Standby)”。兩種名稱節點的狀態同步,可以借助于一個共享存儲系統來實現。一旦活躍名稱節點出現故障,就可以立即切換到待命名稱節點。Zookeeper確保一個名稱節點在對外服務。名稱節點維護映射信息,數據節點同時向兩個名稱節點匯報信息。

HDFS Federation

在Hadoop1.0中,仍然存在以下問題:

  • 不可水平擴展;
  • 單點故障(由HDFS HA解決);
  • 系統整體性能受單個名稱節點吞吐量限制;
  • 單個名稱節點難以提供不同程序間隔離性。

由此設計出了HDFS Federation,其設計了多個相互獨立的名稱節點,使HDFS命名空間可以橫向擴展,不是真正的分布式設計,但遠低于分布式設計的復雜性等。
所有名稱節點共享底層數據節點的存儲資源,擁有多個獨立命名空間管理屬于自己的一組塊(塊池)。
采取客戶端掛載表訪問
比Hadoop1.0的優勢:

  • HDFS集群可擴展性
  • 系統整體性能高
  • 良好的隔離性

YARN——新一代資源管理調度框架

MapReduce1.0中的缺陷

  • 存在單點故障
  • JobTracker“大包大攬”任務過重
  • 容易出現內存溢出
  • 資源劃分不合理

YARN設計思路

將原來的JobTracker拆分(原Master端)

  • 資源管理→ResourceManager
  • 任務調度→ApplicationMaster
  • 任務監控→ApplicationMaster

YARN體系結構

ResourceManager

  • 處理客戶端請求
  • 啟動、監控ApplicationMaster
  • 資源分配與調度
  • 監控NodeManager

ApplicationMaster

  • 為應用程序申請資源,并分配給內部任務
  • 任務監控、調度與容錯

NodeManager

  • 單個節點上的資源管理
  • 處理來自ResourceManager的命令
  • 處理來自ApplicationMaster的命令

YARN的工作流程

  • 首先由用戶編寫客戶端應用程序,向YARN提交;
  • YARN中,ResourceManager 負責接受和處理來自客戶端的請求,為其分配一個容器,并在其中啟動一個ApplicationMaster;
  • 啟動后,向ResourceManager注冊;
  • ApplicationMaster輪詢向ResourceManager申請資源;
  • ResourceManager以“容器”形式向ApplicationMaster申請資源;
  • 在容器中啟動任務(二次分配后)
  • 各任務向ApplicationMaster匯報自己的狀態和進度;
  • 運行完成后ApplicationMaster向ResourceManager的應用程序管理器注銷并關閉自己。

與MapReduce1.0的對比

優勢:

  • YARN減少了中心服務功能ResourceManager的資源消耗
  • YARN是純粹的資源調度管理框架
  • YARN中的資源管理比MapReduce1.0更加高效

YARN的發展目標

實現 “一個集群,多個框架”

Hadoop生態系統中具有代表性的功能組件

Pig

Pig的概念與特點

  • 提供了類似SQL的Pig Latin語言,允許用戶通過編寫簡單的腳本來實現復雜的數據分析,而不需要編寫復雜的MapReduce應用程序
  • Pig會自動把用戶編寫的腳本轉換成MapReduce作業在Hadoop集群上運行,而且具備對生成的MapReduce程序進行自動優化的功能(用戶在編寫Pig程序的時候,不需要關心程序的運行效率,這就大大減少了用戶編程時間)
  • 通過配合使用Pig和Hadoop,在處理海量數據時就可以實現事半功倍的效果,比使用Java、C++等語言編寫MapReduce程序的難度要小很多,并且用更少的代碼量實現了相同的數據處理分析功能

Pig的應用場景

  • 數據查詢只面向相關技術人員
  • 即時性的數據處理需求,這樣可以通過pig很快寫一個腳本開始運行處理,而不需要創建表等相關的事先準備工作

Tez

Tez的概念與特點

  • Tez是Apache開源的支持DAG作業的計算框架,它直接源于MapReduce框架
  • 核心思想是將Map和Reduce兩個操作進一步拆分(Map被拆分成Input、Processor、Sort、Merge和Output) Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等
  • 分解后的元操作可以任意靈活組合,產生新的操作。這些操作經過一些控制程序組裝后,可形成一個大的DAG作業
  • 通過DAG作業的方式運行MapReduce作業,提供了程序運行的整體處理邏輯,就可以去除工作流當中多余的Map階段,減少不必要的操作,提升數據處理的性能

Spark和Kafka

Spark

Spark最初誕生于伯克利大學的APM實驗室,是一個可應用于大規模數據處理的快速、通用引擎,如今是Apache軟件基金會下的頂級開源項目之一。Spark在借鑒Hadoop MapReduce優點的同時,很好地解決了MapReduce所面臨的問題。Spark最大的特點是內存計算,帶來了更高的迭代運算效率
其基于DAG的任務調度執行機制,優于MapReduce的迭代執行機制。所以當前,Spark正以其結構一體化、功能多元化的優勢,逐漸成為當今大數據領域最熱門的大數據計算平臺。關于Spark后面的學習筆記還會提到。

Kafka

Kafka是一種高吞吐量的分布式發布訂閱消息系統,用戶通過Kafka系統可以發布大量的消息,同時也能實時訂閱消費消息。Kafka可以同時滿足在線實時處理和批量離線處理。

總結

以上是生活随笔為你收集整理的大数据技术原理与应用学习笔记(八)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。