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
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...