Hadoop架構及集群

来源:https://www.cnblogs.com/gllyun/archive/2020/02/17/12302195.html
-Advertisement-
Play Games

Hadoop是一個由Apache基金會所開發的分散式基礎架構,Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,而MapReduce則為海量的數據提供了計算,特點是:高可靠性,高擴展性,高效性,高容錯性。 Hadoop與Google三篇論文 Googl ...


Hadoop是一個由Apache基金會所開發的分散式基礎架構,Hadoop的框架最核心的設計就是:HDFS和MapReduce。HDFS為海量的數據提供了存儲,而MapReduce則為海量的數據提供了計算,特點是:高可靠性,高擴展性,高效性,高容錯性。

Hadoop與Google三篇論文

 Hadoop架構

Hadoop1.x與Hadoop2.x的區別:

 

 

   

 Hadoop整體框架來看:

Hadoop1.0由分散式存儲系統HDFS和分散式計算框架MapReduce組成,其中HDFS由一個NameNode和多個DateNode組成,MapReduce由一個JobTracker和多個TaskTracker組成。

1.x與2.x區別

HDFS角度來看:

  1. Hadoop2.x新增了HDFS HA增加了standbynamenode進行熱點備份,解決了1.x的單點故障
  2. Hadoop2.x新增了HDFS federation,解決了 HDFS的水平擴展能力。 

        

 Mapreduce角度來看:

2.x相比與1.x新增了YRAN框架,Mapreduce的運行環境發生了變化

在1.0中:由一個JobTracker和若幹個TaskTracker兩類服務組成,其中JobTracker負責資源管理和所有作業的控制,TaskTracker負責接收來自JobTracker的命令並執行它。所以MapReduce即是任務調度框架又是計算框架,1.0中會出現JobTracker大包大攬任務過重,而且存在單點故障問題,並且容易出現OOM問題,資源分配不合理等問題。

在2.0中:MASTER端由ResourceManager進行資源管理調度,有ApplicationMaster進行任務管理和任務監控。SLAVE端由NodeManager替代TaskTracker進行具體任務的執行,所以MapReduce2.0只是一個計算框架,具體資源調度全部交給Yarn框架。

2.X和3.X最主要區別:

對比

2.X特性

3.X特性

License

Hadoop 2.x - Apache 2.0,開源

Hadoop 3.x - Apache 2.0,開源

支持的最低Java版本

java的最低支持版本是java 7

java的最低支持版本是java 8

容錯

可以通過複製(浪費空間)來處理容錯。

可以通過Erasure編碼處理容錯。

數據平衡

對於數據,平衡使用HDFS平衡器。

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

存儲Scheme

使用3X副本Scheme

支持HDFS中的擦除編碼。

存儲開銷

HDFS在存儲空間中有200%的開銷。

存儲開銷僅為50%。

存儲開銷示例

如果有6個塊,那麼由於副本方案(Scheme),將有18個塊占用空間。

如果有6個塊,那麼將有9個塊空間,6block3塊用於奇偶校驗。

YARN時間線服務

使用具有可伸縮性問題的舊時間軸服務。

改進時間線服務v2並提高時間線服務的可擴展性和可靠性。

預設埠範圍

Hadoop 2.0中,一些預設埠是Linux臨時埠範圍。所以在啟動時,他們將無法綁定。

但是在Hadoop 3.0中,這些埠已經移出了短暫的範圍。

工具

使用HivepigTezHamaGiraph和其他Hadoop工具。

可以使用HivepigTezHamaGiraph和其他Hadoop工具。

相容的文件系統

HDFS(預設FS),FTP文件系統:它將所有數據存儲在可遠程訪問的FTP伺服器上。 Amazon S3(簡單存儲服務)文件系統Windows Azure存儲BlobWASB)文件系統。

 

 

它支持所有前面以及Microsoft Azure Data Lake文件系統。

Datanode資源

 Datanode資源不專用於MapReduce,我們可以將它用於其他應用程式。

此處數據節點資源也可用於其他應用程式。

MR API相容性

Hadoop 1.x程式相容的MR API,可在Hadoop 2.X上執行

此處,MR API與運行Hadoop 1.x程式相容,以便在Hadoop 3.X上執行

支持Microsoft Windows

它可以部署在Windows上。

它也支持Microsoft Windows

插槽/容器

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

 

它也適用於容器的概念。

單點故障

具有SPOF的功能,因此只要Namenode失敗,它就會自動恢復。

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

HDFS聯盟

Hadoop 1.0中,只有一個NameNode來管理所有Namespace,但在Hadoop 2.0中,多個NameNode用於多個Namespace

 Hadoop 3.x還有多個名稱空間用於多個名稱空間。

可擴展性

我們可以擴展到每個群集10,000個節點。

更好的可擴展性。 我們可以為每個群集擴展超過10,000個節點。

更快地訪問數據

由於數據節點緩存,我們可以快速訪問數據。

這裡也通過Datanode緩存我們可以快速訪問數據。

HDFS快照

Hadoop 2增加了對快照的支持。 它為用戶錯誤提供災難恢復和保護。

Hadoop 2也支持快照功能。

平臺

可以作為各種數據分析的平臺,可以運行事件處理,流媒體和實時操作。

這裡也可以在YARN的頂部運行事件處理,流媒體和實時操作。

群集資源管理

對於群集資源管理,它使用YARN。 它提高了可擴展性,高可用性,多租戶。

對於集群,資源管理使用具有所有功能的YARN


3.x的新特性參考:https://www.cnblogs.com/smartloli/p/9028267.html ;https://www.cnblogs.com/smartloli/p/8827623.html

 HDFS(Hadoop Distributed File System)架構概述

  • NameNode(NN):存儲文件的元數據,如文件名,文件目錄結構,文件屬性(生成時間,副本數,文件許可權),以及每個文件的塊列表和所在的DataNode等。
  • DataNode(DN):在本地文件系統存儲的文件數據,以及塊數據的校驗和。
  • Secondary NameNode(2NN):用來監控HDFS狀態的輔助後臺程式,每隔一段時間獲取HDFS元數據的快照。

 YARN架構概述

MapReduce將計算過程分為兩個階段:MapReduce,如圖2-25所示

1Map階段並行處理輸入數據

2Reduce階段對Map結果進行彙總

 

 

 大數據技術生態體系

圖中涉及的技術名詞解釋如下:

1SqoopSqoop是一款開源的工具,主要用於在Hadoop、Hive與傳統的資料庫(MySql)間進行數據的傳遞,可以將一個關係型資料庫(例如 :MySQL,Oracle 等)中的數據導進到HadoopHDFS中,也可以將HDFS的數據導進到關係型資料庫中。

2FlumeFlumeCloudera提供的一個高可用的,高可靠的,分散式的海量日誌採集、聚合和傳輸的系統,Flume支持在日誌系統中定製各類數據發送方,用於收集數據;同時,Flume提供對數據進行簡單處理,並寫到各種數據接受方(可定製)的能力。

3KafkaKafka是一種高吞吐量的分散式發佈訂閱消息系統,有如下特性:

1)通過O(1)的磁碟數據結構提供消息的持久化,這種結構對於即使數以TB的消息存儲也能夠保持長時間的穩定性能。

2)高吞吐量:即使是非常普通的硬體Kafka也可以支持每秒數百萬的消息

3)支持通過Kafka伺服器和消費機集群來分區消息。

4)支持Hadoop並行數據載入。

4StormStorm用於連續計算,對數據流做連續查詢,在計算時就將結果以流的形式輸出給用戶。

5SparkSpark是當前最流行的開源大數據記憶體計算框架。可以基於Hadoop上存儲的大數據進行計算。

6OozieOozie是一個管理Hdoop作業(job)的工作流程調度管理系統。

7HbaseHBase是一個分散式的、面向列的開源資料庫。HBase不同於一般的關係資料庫,它是一個適合於非結構化數據存儲的資料庫。

8HiveHive是基於Hadoop的一個數據倉庫工具,可以將結構化的數據文件映射為一張資料庫表,並提供簡單的SQL查詢功能,可以將SQL語句轉換為MapReduce任務進行運行。 其優點是學習成本低,可以通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合數據倉庫的統計分析。

10R語言:R是用於統計分析、繪圖的語言和操作環境。R是屬於GNU系統的一個自由、免費、源代碼開放的軟體,它是一個用於統計計算和統計製圖的優秀工具。

11Mahout:Apache Mahout是個可擴展的機器學習和數據挖掘庫。

12ZooKeeperZookeeperGoogleChubby一個開源的實現。它是一個針對大型分散式系統的可靠協調系統,提供的功能包括:配置維護、名字服務、 分散式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和性能高效、功能穩定的系統提供給用戶。

推薦系統框架圖

 Hadoop集群搭建

虛擬機環境準備 -----/etc/hosts:

  • 克隆虛擬機
  • 修改克隆虛擬機的靜態IP
  • 修改主機名
  • 關閉防火牆
  • 創建用戶gll
  • 配置gll用戶具有root許可權
  • 在/opt目錄下創建文件夾         
1)在/opt目錄下創建module、software文件夾   

 [atguigu@hadoop101 opt]$ sudo mkdir module
 [atguigu@hadoop101 opt]$ sudo mkdir software     

(2)修改module、software文件夾的所有者cd   

 [atguigu@hadoop101 opt]$ sudo chown atguigu:atguigu module/ software/
 [atguigu@hadoop101 opt]$ ll

 總用量 8
 drwxr-xr-x. 2 atguigu atguigu 4096 1月  17 14:37 module
 drwxr-xr-x. 2 atguigu atguigu 4096 1月  17 14:38 software

安裝JDK

卸載現有JDK

1)查詢是否安裝Java軟體:
 [atguigu@hadoop101 opt]$ rpm -qa | grep java

(2)如果安裝的版本低於1.7,卸載該JDK:
 [atguigu@hadoop101 opt]$ sudo rpm -e 軟體包

(3)查看JDK安裝路徑:
 [atguigu@hadoop101 ~]$ which java

Linux系統下的opt目錄中查看軟體包是否導入成功

[atguigu@hadoop101 opt]$ cd software/
[atguigu@hadoop101 software]$ ls
hadoop-2.7.2.tar.gz  jdk-8u144-linux-x64.tar.gz

解壓JDK/opt/module目錄下

  [atguigu@hadoop101 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

配置JDK環境變數

1)先獲取JDK路徑
  [atguigu@hadoop101 jdk1.8.0_144]$ pwd
  /opt/module/j

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

-Advertisement-
Play Games
更多相關文章
  • WPF支持真正的透明效果。這意味著,如果在一個性質或元素上層疊另外幾個形狀或元素,並讓所有這些形狀和元素具有不同的透明度,就會看到所期望的效果。通過該特性能夠創建透過上面的元素可以看到的的圖像背景,這是最簡單的情形。最複雜的情形是,使用該特性可創建多層動畫和其他效果,對於其他框架來說這是很難實現的。 ...
  • redis集群搭建--參考微信公眾號(詩情畫意程式員):https://mp.weixin.qq.com/s/s5eJE801TInHgb8bzCapJQ 這是來自redis官網的一段介紹,大概意思就是: Redis是一個開源(BSD許可)的記憶體數據結構存儲,用作資料庫、緩存和消息代理。它支持諸如字 ...
  • 外部SRAM註意事項為使外部SRAM器件達到出最佳性能,建議遵循以下原則:使用與連接的主系統控制器的介面數據帶寬相同的SRAM。如果管腳使用或板上空間的限制高於系統性能要求,可以使用較連接的控制器的數據帶寬小一些的SRAM設備,以便減少管腳數量並減少PCB板上可能的存儲器數量。然而這種變化將導致降低 ...
  • [toc] I am a 程式猿兒,新年第一篇,今天推薦一下那些大神平常使用的電腦軟體和工具類網站,讓你秒變大神。 下麵的整理前面部分是基礎的軟體,做不做技術都需要安裝的一些,後面部分是對程式猿推薦的一些開發軟體和插件。 操作系統 1、微軟正版win10系統安裝:bai度搜索 下載Windows10 ...
  • 通過前面文章的學習已經掌握了Linux系統配置管理的知識,本文講解Centos7網路配置知識。 ...
  • 作為一名後端開發,MySQL的使用必不可少,合理的使用索引和索引調優是後端開發者必須掌握的技能之一。 ...
  • 1 環境 樹莓派: mysql: 2 指令 以下是從命令行中連接mysql伺服器的簡單實例: [root@host]# mysql -u root -p Enter password:****** 或者: pi@raspberrypi:~ $ sudo mysql 查看資料庫: mysql> SHO ...
  • HDFS(Hadoop Distributed File System) 分散式文件系統,HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用.由NameNode,若幹DataNode,以及Secondary NameNode組成。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...