當前位置:首頁 » 服務存儲 » 下面哪個程序負責HDFS數據存儲
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

下面哪個程序負責HDFS數據存儲

發布時間: 2022-04-25 18:35:40

❶ HDFS的文件存儲過程

在正式介紹HDFS小文件存儲方案之前,我們先介紹一下當前HDFS上文件存取的基本流程。
(1) 讀文件流程
1)client端發送讀文件請求給namenode,如果文件不存在,返回錯誤信息,否則,將該文件對應的block及其所在datanode位置發送給client
2) client收到文件位置信息後,與不同datanode建立socket連接並行獲取數據。
(2) 寫文件流程
1) client端發送寫文件請求,namenode檢查文件是否存在,如果已存在,直接返回錯誤信息,否則,發送給client一些可用namenode節點
2) client將文件分塊,並行存儲到不同節點上datanode上,發送完成後,client同時發送信息給namenode和datanode
3) namenode收到的client信息後,發送確信信息給datanode
4) datanode同時收到namenode和datanode的確認信息後,提交寫操作。

❷ hdfs有哪些進程並說明其作用

Hadoop分布式文件系統(HDFS)被設計成適合運行在通用硬體(commodity hardware)上的分布式文件系統。它和現有的分布式文件系統有很多共同點。但同時,它和其他的分布式文件系統的區別也是很明顯的。HDFS是一個高度容錯性的系統,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。HDFS放寬了一部分POSIX約束,來實現流式讀取文件系統數據的目的。HDFS在最開始是作為Apache Nutch搜索引擎項目的基礎架構而開發的。HDFS是Apache Hadoop Core項目的一部分。 Hadoop分布式文件系統架構 1 NameNode(名稱節點) HDFS命名空間採用層次化(樹狀——譯者注)的結構存放文件和目錄。 2 映像和日誌 Inode和定義metadata的系統文件塊列表統稱為Image(映像).NameNode將整個命名空間映像保存在RAM中。而映像的持久化記錄則保存在NameNode的本地文件系統中,該持久化記錄被稱為Checkpoint(檢查點)。NameNode還會記錄HDFS中寫入的操作,並將其存入一個記錄文件,存放在本地文件系統中,這個記錄文件被叫做Journal(日誌)。 3 數據節點 DataNode上的每一個塊(block)副本都由兩個本地文件系統上的文件共同表示。其中一個文件包含了塊(block)本身所需包含的數據,另一個文件則記錄了該塊的元數據,包括塊所含數據大小和文件生成時間戳。數據文件的大小等於該塊(block)的真實大小,而不是像傳統的文件系統一樣,需要用額外的存儲空間湊成完整的塊。因此,如果一個塊里只需要一半的空間存儲數據,那麼就只需要在本地系統上分配半塊的存儲空間即可。 4 HDFS客戶端 用戶應用程序通過HDFS客戶端連接到HDFS文件系統,通過庫文件可導出HDFS文件系統的介面。像很多傳統的文件系統一樣,HDFS支持文件的讀、寫和刪除操作,還支持對目錄的創建和刪除操作。與傳統的文件系統不同的是,HDFS提供一個API用以暴露文件塊的位置。這個功能允許應用程序。 5 檢查點節點 HDFS中的NameNode節點,除了其主要職責是相應客戶端請求以外,還能夠有選擇地扮演一到兩個其他的角色,例如做檢查點節點或者備份節點。該角色是在節點啟動的時候特有的。 6 備份節點 HDFS的備份節點是最近在加入系統的一項特色功能。就像CheckpintNode一樣,備份節點能夠定期創建檢查點,但是不同的是,備份節點一直保存在內存中,隨著文件系統命名空間的映像更新和不斷更新,並與NameNode的狀態隨時保持同步。 7 系統更新和文件系統快照 在軟體更新的過程中,由於軟體的bug或者人為操作的失誤,文件系統損壞的幾率會隨之提升。在HDFS中創建系統快照的目的,就在於把系統升級過程中可能對數據造成的隱患降到最低。快照機制讓系統管理員將當前系統狀態持久化到文件系統中,這樣以來,如果系統升級後出現了數據丟失或者損壞,便有機會進行回滾操作,將HDFS的命名空間和存儲狀態恢復到系統快照進行的時刻。

❸ hdfs主要功能

(1)、Client其主要的職責如下

(a)、在上傳數據的時候對數據進行分塊,在進行數據的下載的時候對數據進行合並

(b)、與NameNode進行通信在進行數據上傳的時候獲取數據上傳時的數據節點,在數據下載的時候獲取存儲數據的節點

(c)、與DataNode進行通信進行數據的上傳和下載

(2)、NameNode主要的職責如下

(a)、負責數據塊映射信息的管理,在上傳數據的時候給Client返回可以上傳的數據節點,在需要獲取數據的時候返回數據所在的節點,其本身並不存儲數據。

(b)、副本數據的管理策略。

(c)、管理HDFS的名稱空間

(3)、DataNode的主要的職責如下

(a)、負責數據的存儲以及數據的讀寫。

(4)、SecondaryNameNode主要職責

(a)、是NM的一個備用。

(b)、減去NM的負擔,對NM中的日誌以及鏡像文件進行合並在把合並之後的數據發回到NM。
HDFS的寫過程及內部原理


1. 使用HDFS提供的客戶端開發庫,向遠程的Namenode發起RPC請求;

2. Namenode會檢查要創建的文件是否已經存在,創建者是否有許可權進行操作,成功則會為文件創建一個記錄,否則會讓客戶端拋出異常;

3. 當客戶端開始寫入文件的時候,開發庫會將文件切分成多個packets(信息包),並在內部以"data queue"的形式管理這些packets,並向Namenode申請新的blocks,獲取用來存儲replicas(復製品)的合適的datanodes列表,列表的大小根據在Namenode中對replication的設置而定。

4. 開始以pipeline(管道)的形式將packet寫入所有的replicas中。開發庫把packet以流的方式寫入第一個datanode,該datanode把該packet存儲之後,再將其傳遞給在此pipeline(管道)中的下一個datanode,直到最後一個datanode,這種寫數據的方式呈流水線的形式。

5. 最後一個datanode成功存儲之後會返回一個ack packet,在pipeline里傳遞至客戶端,在客戶端的開發庫內部維護著"ack queue",成功收到datanode返回的ack packet後會從"ack queue"移除相應的packet。

6. 如果傳輸過程中,有某個datanode出現了故障,那麼當前的pipeline會被關閉,出現故障的datanode會從當前的pipeline中移除,剩餘的block會繼續剩下的datanode中繼續以pipeline的形式傳輸,同時Namenode會分配一個新的datanode,保持replicas設定的數量。

❹ 下面哪個程序負責 hdfs 數據存儲

負責「hdfs」和「數據存儲」的程序是HDFS。

❺ hadoop中主機有多少個進程是對的

概述:
Hadoop是一個能夠對大量數據進行分布式處理的軟體框架,實現了Google的MapRece編程模型和框架,能夠把應用程序分割成許多的 小的工作單元,並把這些單元放到任何集群節點上執行。在MapRece中,一個准備提交執行的應用程序稱為「作業(job)」,而從一個作業劃分出 得、運行於各個計算節點的工作單元稱為「任務(task)」。此外,Hadoop提供的分布式文件系統(HDFS)主要負責各個節點的數據存儲,並實現了 高吞吐率的數據讀寫。

在分布式存儲和分布式計算方面,Hadoop都是用從/從(Master/Slave)架構。在一個配置完整的集群上,想讓Hadoop這頭大 象奔跑起來,需要在集群中運行一系列後台(deamon)程序。不同的後台程序扮演不用的角色,這些角色由NameNode、DataNode、 Secondary NameNode、JobTracker、TaskTracker組成。其中NameNode、SecondaryNameNode、JobTracker運行在Master節點上,而在每個Slave節點上,部署一個DataNode和TaskTracker,以便 這個Slave伺服器運行的數據處理程序能盡可能直接處理本機的數據。對Master節點需要特別說明的是,在小集群中,SecondaryNameNode可以屬於某個從節點;在大型集群中,NameNode和JobTracker被分別部署在兩台伺服器上。

我們已經很熟悉這個5個進程,但是在使用的過程中,我們經常遇到問題,那麼該如何入手解決這些問題。那麼首先我們需了解的他們的原理和作用。1.Namenode介紹

Namenode 管理者文件系統的Namespace。它維護著文件系統樹(filesystem tree)以及文件樹中所有的文件和文件夾的元數據(metadata)。管理這些信息的文件有兩個,分別是Namespace 鏡像文件(Namespace image)和操作日誌文件(edit log),這些信息被Cache在RAM中,當然,這兩個文件也會被持久化存儲在本地硬碟。Namenode記錄著每個文件中各個塊所在的數據節點的位置信息,但是他並不持久化存儲這些信息,因為這些信息會在系統啟動時從數據節點重建。

Namenode結構圖課抽象為如圖:




下面來詳細的介紹這三類組件:

服務組件

TaskTracker節點內部的服務組件不僅用來為TaskTracker節點、客戶端提供服務,而且還負責向TaskTracker節點請求服務,這一類組件主要包括HttpServer、TaskReportServer、JobClient三大組件。

1.HttpServer

TaskTracker節點在其內部使用Jetty Web容器來開啟http服務,這個http服務一是用來為客戶端提供Task日誌查詢服務,二是用來提供數據傳輸服務,即在執行Rece任務時是通過TaskTracker節點提供的該http服務來獲取屬於自己的map輸出數據。這里需要詳細介紹的是與該服務相關的配置參數,集群管理者可以通過TaskTracker節點的配置文件來配置該服務地址和埠號,對應的配置項為:mapred.task.tracker.http.address。同時,為了能夠靈活的控制該該服務的吞吐量,管理者還可以設置該http服務的內部工作線程數量,對應的配置為:tasktracker.http.threads。

2.Task Reporter

TaskTracker節點在接收到JobTracker節點發送過來的Map/Rece任務之後,會把它們交給JVM實例來執行,而自己則需要收集這些任務的執行進度信息,這就使得Task在JVM實例中執行的時候需要不斷地向TaskTracker節點報告當前的執行情況。雖然TaskTracker節點和JVM實例在同一台機器上,但是它們之間的進程通信卻是通過網路I/O來完成的(此處並不討論這種通信方式的性能),也就是TaskTracker節點在其內部開啟一個埠來專門為任務實例提供進度報告服務。該服務地址可以通過配置項mapred.task.tracker.report.address來設置,而服務內部的工作線程的數量取2倍於該TaskTracker節點上的Map/Rece Slot數量中的大者。


❻ hdfs數據存儲在集群什麼地方

1、存儲文件的時候需要指定存儲的路徑,這個路徑是HDFS的路徑。而不是哪個節點的某個目錄。比如./hadoopfs-putlocalfilehdfspat一般操作的當前路徑是/user/hadoop比如執行./hadoopfs-ls.實際上就相當於./hadoopfs-ls/user/hadoop2、HDFS本身就是一個文件系統,在使用的時候其實不用關心具體的文件是存儲在哪個節點上的。如果需要查詢可以通過頁面來查看,也可以通過API來實現查詢。

❼ hadoop的核心是什麼

Hadoop是一個開源框架,用於以分布式方式存儲和處理大數據。Hadoop的核心組件是 -

  • HDFS(Hadoop分布式文件系統) - HDFS是Hadoop的基本存儲系統。在商用硬體集群上運行的大型數據文件存儲在HDFS中。即使硬體出現故障,它也能以可靠的方式存儲數據。

  • Hadoop MapRece - MapRece是負責數據處理的Hadoop層。它編寫了一個應用程序來處理存儲在HDFS中的非結構化和結構化數據。它負責通過將數據劃分為獨立任務來並行處理大量數據。處理分兩個階段完成Map和Rece。Map是指定復雜邏輯代碼的第一個處理階段,Rece是指定輕量級操作的第二階段處理。

  • YARN - Hadoop中的處理框架是YARN。它用於資源管理並提供多種數據處理引擎,即數據科學,實時流和批處理。

❽ 下面哪個程序負責hdfs數據存儲

存放到HDFS 一般都是要分析的數據。分析完成的數據直接存儲到MYSQL 或者ORACLE 中。這種處理方式是離線處理。如日誌文件存儲到hdfs 分析出網站的流量 UV PV 等等。一般都是用pig hive 和mr 等進行分析的。 存放到HBASE 一般都是數據拿過來直接用...