大數據Hadoop生態系統介紹

来源:https://www.cnblogs.com/liugp/archive/2022/04/04/16100092.html
-Advertisement-
Play Games

一、概述 Hadoop是Apache軟體基金會下一個開源分散式計算平臺,以hdfs(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是資源調度框架,能夠細粒度的管理和調度任務,還能夠支持其他的計算框架,比如spark)為核 ...


目錄

一、概述

Hadoop是Apache軟體基金會下一個開源分散式計算平臺,以hdfs(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是資源調度框架,能夠細粒度的管理和調度任務,還能夠支持其他的計算框架,比如spark)為核心的Hadoop為用戶提供了系統底層細節透明的分散式基礎架構。hdfs的高容錯性、高伸縮性、高效性等優點讓用戶可以將Hadoop部署在低廉的硬體上,形成分散式系統。目前最新版本已經是3.x了,官方文檔

1)Hadoop發行版本

1、Apache Hadoop發行版

官方地址:https://hadoop.apache.org

Apache版本最原始(最基礎)的版本,對於入門學習最好。

在這裡插入圖片描述

2、DKhadoop發行版

Github地址:https://github.com/dkhadoop/dk-fitting

有效的集成了整個HADOOP生態系統的全部組件,並深度優化,重新編譯為一個完整的更高性能的大數據通用計算平臺,實現了各部件的有機協調。因此DKH相比開源的大數據平臺,在計算性能上有了高達5倍(最大)的性能提升。DKhadoop將複雜的大數據集群配置簡化至三種節點(主節點、管理節點、計算節點),極大的簡化了集群的管理運維,增強了集群的高可用性、高可維護性、高穩定性。

在這裡插入圖片描述

3、Cloudera發行版

官方地址:https://www.cloudera.com/products/open-source/apache-hadoop.html

CDH是Cloudera的hadoop發行版,完全開源,比Apache hadoop在相容性,安全性,穩定性上有增強。
在這裡插入圖片描述

4、Hortonworks發行版

官方地址:https://www.cloudera.com/products/hdp.html

Hortonworks 的主打產品是Hortonworks Data Platform (HDP),也同樣是100%開源的產品,其版本特點:HDP包括穩定版本的Apache Hadoop的所有關鍵組件;安裝方便,HDP包括一個現代化的,直觀的用戶界面的安裝和配置工具。

在這裡插入圖片描述

5、華為hadoop發行版

華為FusionInsight大數據平臺是集Hadoop生態發行版、大規模並行處理資料庫、大數據云服務於一體的融合數據處理與服務平臺,擁有端到端全生命周期的解決方案能力。除了提供包括批處理、記憶體計算、流計算和MPPDB在內的全方位數據處理能力外,還提供數據分析挖掘平臺、數據服務平臺,幫助用戶實現從數據到知識,從知識到智慧的轉換,進而幫助用戶從海量數據中挖掘數據價值。

在這裡插入圖片描述

2)Hadoop1.x -》 Hadoop2.x的演變

在這裡插入圖片描述

3)Hadoop2.x與Hadoop3.x區別對比

License

  • Hadoop 2.x - Apache 2.0,開源
  • Hadoop 3.x - Apache 2.0,開源

支持的最低Java版本

  • Hadoop 2.x - java的最低支持版本是java 7
  • Hadoop 3.x - java的最低支持版本是java 8

容錯

  • Hadoop 2.x - 可以通過複製(浪費空間)來處理容錯。
  • Hadoop 3.x - 可以通過Erasure編碼處理容錯。

數據平衡

  • Hadoop 2.x - 對於數據,平衡使用HDFS平衡器。
  • Hadoop 3.x - 對於數據,平衡使用Intra-data節點平衡器,該平衡器通過HDFS磁碟平衡器CLI調用。

存儲Scheme

  • Hadoop 2.x - 使用3X副本Scheme。
  • Hadoop 3.x - 支持HDFS中的擦除編碼。

存儲開銷

  • Hadoop 2.x - HDFS在存儲空間中有200%的開銷。
  • Hadoop 3.x - 存儲開銷僅為50%。

存儲開銷示例

Hadoop 2.x - 如果有6個塊,那麼由於副本方案(Scheme),將有18個塊占用空間。
Hadoop 3.x - 如果有6個塊,那麼將有9個塊占用6塊空間,3個用於奇偶校驗。

YARN時間線服務

  • Hadoop 2.x - 使用具有可伸縮性問題的舊時間軸服務。
  • Hadoop 3.x - 改進時間線服務v2並提高時間線服務的可擴展性和可靠性。

預設埠範圍

  • Hadoop 2.x - 在Hadoop 2.0中,一些預設埠是Linux臨時埠範圍。所以在啟動時,他們將無法綁定。
  • Hadoop 3.x - 但是在Hadoop 3.0中,這些埠已經移出了短暫的範圍。

工具

  • Hadoop 2.x - 使用Hive,pig,Tez,Hama,Giraph和其他Hadoop工具。
  • Hadoop 3.x - 可以使用Hive,pig,Tez,Hama,Giraph和其他Hadoop工具。

相容的文件系統

  • Hadoop 2.x - HDFS(預設FS),FTP文件系統:它將所有數據存儲在可遠程訪問的FTP伺服器上。 Amazon S3(簡單存儲服務)文件系統Windows Azure存儲Blob(WASB)文件系統。
  • Hadoop 3.x - 它支持所有前面以及Microsoft Azure Data Lake文件系統。

Datanode資源

  • Hadoop 2.x - Datanode資源不專用於MapReduce,我們可以將它用於其他應用程式。
  • Hadoop 3.x - 此處數據節點資源也可用於其他應用程式。

MR API相容性

  • Hadoop 2.x - 與Hadoop 1.x程式相容的MR API,可在Hadoop 2.X上執行。
  • Hadoop 3.x - 此處,MR API與運行Hadoop 1.x程式相容,以便在Hadoop 3.X上執行。

支持Microsoft Windows

  • Hadoop 2.x - 它可以部署在Windows上。
  • Hadoop 3.x - 它也支持Microsoft Windows。

插槽/容器

  • Hadoop 2.x - Hadoop 1適用於插槽的概念,但Hadoop 2.X適用於容器的概念。通過容器,我們可以運行通用任務。
  • Hadoop 3.x - 它也適用於容器的概念。

單點故障

  • Hadoop 2.x - 具有SPOF的功能,因此只要Namenode失敗,它就會自動恢復。
  • Hadoop 3.x - 具有SPOF的功能,因此只要Namenode失敗,它就會自動恢復,無需人工干預就可以剋服它。

HDFS聯盟

  • Hadoop 2.x - 在Hadoop 1.0中,只有一個NameNode來管理所有Namespace,但在Hadoop 2.0中,多個NameNode用於多個Namespace。
  • Hadoop 3.x - Hadoop 3.x還有多個名稱空間用於多個名稱空間。

可擴展性

  • Hadoop 2.x - 我們可以擴展到每個群集10,000個節點。
  • Hadoop 3.x - 更好的可擴展性。 我們可以為每個群集擴展超過10,000個節點。

訪問數據

  • Hadoop 2.x - 由於數據節點緩存,我們可以快速訪問數據。
  • Hadoop 3.x - 這裡也通過Datanode緩存我們可以快速訪問數據。

HDFS快照

  • Hadoop 2.x - Hadoop 2增加了對快照的支持。 它為用戶錯誤提供災難恢復和保護。
  • Hadoop 3.x - Hadoop 2也支持快照功能。

平臺

  • Hadoop 2.x - 可以作為各種數據分析的平臺,可以運行事件處理,流媒體和實時操作。
  • Hadoop 3.x - 這裡也可以在YARN的頂部運行事件處理,流媒體和實時操作。

群集資源管理

  • Hadoop 2.x - 對於群集資源管理,它使用YARN。 它提高了可擴展性,高可用性,多租戶。
  • Hadoop 3.x - 對於集群,資源管理使用具有所有功能的YARN。

二、Hadoop的發展簡史

  • Hadoop最初是由Apache Lucene項目的創始人Doug Cutting開發的文本搜索庫。Hadoop源自始於2002年的Apache Nutch項目——一個開源的網路搜索引擎並且也是Lucene項目的一部分。

  • 在2004年,Nutch項目也模仿GFS開發了自己的分散式文件系統NDFS(Nutch Distributed File System),也就是HDFS的前身。

  • 2004年,谷歌公司又發表了另一篇具有深遠影響的論文,闡述了MapReduce分散式編程思想。

  • 2005年,Nutch開源實現了谷歌的MapReduce。

  • 到了2006年2月,Nutch中的NDFS和MapReduce開始獨立出來,成為Lucene項目的一個子項目,稱為Hadoop,同時,Doug Cutting加盟雅虎。

  • 2008年1月,Hadoop正式成為Apache頂級項目,Hadoop也逐漸開始被雅虎之外的其他公司使用。

  • 2008年4月,Hadoop打破世界紀錄,成為最快排序1TB數據的系統,它採用一個由910個節點構成的集群進行運算,排序時間只用了209秒。

  • 在2009年5月,Hadoop更是把1TB數據排序時間縮短到62秒。Hadoop從此名聲大震,迅速發展成為大數據時代最具影響力的開源分散式開發平臺,併成為事實上的大數據處理標準。

三、Hadoop生態系統

在這裡插入圖片描述
在這裡插入圖片描述

  • HDFS——Hadoop分散式文件系統,GFS的Java開源實現,運行於大型商用機器集群,可實現分散式存儲
  • MapReduce——一種並行計算框架,Google MapReduce模型的Java開源實現,基於其寫出來的應用程式能夠運行在由上千個商用機器組成的大型集群上,並以一種可靠容錯的方式並行處理T級別及以上的數據集。(第一代的計算框架,自身存在一些弊端,所以導致企業里已經很少使用了)。
  • Yarn——Apache Hadoop YARN (Yet Another Resource Negotiator,另一種資源協調者)是一種新的 Hadoop 資源管理器,它是一個通用資源管理系統,可為上層應用提供統一的資源管理和調度,它的引入為集群在利用率、資源統一管理和數據共用等方面帶來了巨大好處。
  • Spark——Spark是加州大學伯克利分校AMP實驗室(Algorithms, Machines, and People Lab)開發的通用記憶體並行計算框架,借鑒了MapReduce之上發展而來的,繼承了其分散式並行計算的優點並改進了MapReduce明顯的缺陷。使用場景如下:
    1. 複雜的批量處理(Batch Data Processing),偏重點在於處理海量數據的能力,至於處理速度可忍受,通常的時間可能是在數十分鐘到數小時;

    2. 基於歷史數據的互動式查詢(Interactive Query),通常的時間在數十秒到數十分鐘之間

    3. 基於實時數據流的數據處理(Streaming Data Processing),通常在數百毫秒到數秒之間

  • Storm——Storm用於“連續計算”,對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。如今已被Flink替代
  • Flink——Apache Flink是一個面向數據流處理和批量數據處理的可分散式的開源計算框架,它基於同一個Flink流式執行模型(streaming execution model),能夠支持流處理和批處理兩種應用類型。由於流處理和批處理所提供的SLA(服務等級協議)是完全不相同, 流處理一般需要支持低延遲、Exactly-once保證,而批處理需要支持高吞吐、高效處理,所以在實現的時候通常是分別給出兩套實現方法,或者通過一個獨立的開源框架來實現其中每一種處理方案。
  • Flume——一個可用的、可靠的、分散式的海量日誌採集、聚合和傳輸系統
  • Hive——是為提供簡單的數據操作而設計的分散式數據倉庫,它提供了簡單的類似
    SQL語法的HiveQL語言進行數據查詢。
  • Zookeeper——分散式協調系統,Google Chubby的Java開源實現,是高可用的和可靠的分散式協同(coordination)系統,提供分散式鎖之類的基本服務,用於構建分散式應用。
  • Hbase——基於Hadoop的分散式資料庫,Google BigTable的開源實現 是一個有
    序、稀疏、多維度的映射表,有良好的伸縮性和高可用性,用來將數據存儲到各個計算節點上。
  • Cloudbase——基於Hadoop的數據倉庫,支持標準的SQL語法進行數據查詢。
  • Pig——大數據流處理系統,建立於Hadoop之上為並行計算環境提供了一套數據工
    作流語言和執行框架。
  • Mahout——基於HadoopMapReduce的大規模數據挖掘與機器學習演算法庫
  • Oozie——MapReduce工作流管理系統
  • Sqoop——數據轉移系統,是一個用來將Hadoop和關係型資料庫中的數據相互轉
    移的工具,可以將一個關係型資料庫中的數據導入Hadoop的HDFS中,也可以將HDFS
    的數據導入關係型資料庫中。
  • Scribe——Facebook開源的日誌收集聚合框架系統

這裡只是列舉了一部分Hadoop生態里的組件,稍微介紹了一下,上面提到的目前企業里最常見的組件的原理介紹,安裝部署,以及企業級使用會在後續分享出來,請耐心等待……


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 閱文時長 | 1.15分鐘 字數統計 | 1844.8字元 主要內容 | 1、引言&背景 2、部分設計分享 3、聲明與參考資料 『.Net MVC實現角色-API許可權驗證的一種方式』 編寫人 | SCscHero 編寫時間 | 2022/3/27 PM9:31 文章類型 | 系列 完成度 | 已完成 ...
  • 三類設計模式的對比 英文名 設計模式數量 用途、意義 創建型模式 Creational Pattern 5 創建型模式關註對象的創建過程,將對象的創建和使用分離,降低系統耦合度,讓設計方案更易於修改和擴展 結構型模式 Structural Pattern 7 結構型模式關註如何將類或對象組織在一起, ...
  • 問題描述 考慮這樣一個需求:畫布上的對象支持手勢操作,手勢操作模式有平移、縮放、旋轉,對象可以支持一種或多種手勢,如何定義這個手勢操作模式? 就像文件的許可權一樣,只讀、只寫、讀寫,手勢操作也可以這樣設計。將手勢操作模式定義為簡單的枚舉類型是不夠的,我們需要表示不同模式的組合,需要支持位運算,因此每個 ...
  • 系統調用 系統調用: 操作系統提供給用戶程式調用的一組“特殊”介面,用戶程式可以通過這組“特殊”介面來獲得操作系統內核提供的服務 為什麼用戶程式不能直接訪問系統內核提供的服務為了更好地保護內核空間,將程式的運行空間分為 內核空間 和 用戶空間(也就是常稱的內核態和用戶態),它們分別運行在不同的級別上 ...
  • Ubuntu系統報錯:The system is running in low-graphics mode 我遇到過兩次這種請況,這次解決了。很nice! 在csdn上搜到的大部分操作是: 滑鼠進入系統 使用快捷鍵 Ctrl+Alt+F1 進入用戶 輸入密碼 然後按照以下代碼進行 cd /etc/X ...
  • 在介紹網路模式之前,關於網路的幾個簡單命令的使用 ifup eth0 //啟動網卡eth0 ifdown eth0 //關閉網卡eth0 /etc/network/interfaces //網路配置文件 /etc/init.d/networking //網路服務位置 /etc/init.d/netw ...
  • 一、Hadoop概述 Hadoop是Apache軟體基金會下一個開源分散式計算平臺,以HDFS(Hadoop Distributed File System)、MapReduce(Hadoop2.0加入了YARN,Yarn是資源調度框架,能夠細粒度的管理和調度任務,還能夠支持其他的計算框架,比如sp ...
  • 這兩天都是在跟文件打交道,很有趣,每一步都不會順心如意,但每一步的解決都有所獲益,首先是對文件變化的監測,能找到很多辦法,例如通過ELK家族的Filebeat工具來探測,但是外部工具不好融合進Storm,最好是自己寫Java程式來監測。 引入Java NIO 監控文件 其實jdk7以上版本就有一個比 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...