91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HDFS的基本原理有哪些

發布時間:2020-08-03 11:50:06 來源:億速云 閱讀:123 作者:Leah 欄目:編程語言

HDFS的基本原理有哪些?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

1NameNode概述

NameNodeHDFS的核心,相信這一點大家都知道,所以NameNode也被稱為Master。NameNode僅存儲HDFS的元數據:文件系統中所有文件的目錄樹,并跟蹤整個集群中的文件。NameNode不存儲實際數據或數據集。數據本身實際存儲在DataNodes中。NameNode知道HDFS中任何給定文件的塊列表及其位置。使用此信息NameNode知道如何從塊中構建文件。NameNode并不持久化存儲每個文件中各個塊所在的 DataNode 的位置信息,這些信息會在系統啟動時從數據節點重建。NameNode對于HDFS至關重要,當NameNode關閉時,HDFS / Hadoop集群無法訪問。總結一下,NameNodeHadoop集群中的單點故障。NameNode所在機器通常會配置有大量內存(RAM)。

2DataNode概述

DataNode負責將實際數據存儲在HDFS中。DataNode也稱為SlaveNameNodeDataNode會保持不斷通信。DataNode啟動時,它將自己發布到NameNode并匯報自己負責持有的塊列表。當某個DataNode關閉時,它不會影響數據或群集的可用性。NameNode將安排由其他DataNode管理的塊進行副本復制。DataNode所在機器通常配置有大量的硬盤空間。因為實際數據存儲DataNode中。DataNode會定期向NameNode發送心跳,如果NameNode長時間沒有接受到DataNode發送的心跳, NameNode就會認為該DataNode失效。block匯報時間間隔取參數dfs.blockreport.intervalMsec,參數未配置的話默認為6小時。

3HDFS的工作機制

NameNode負責管理整個文件系統元數據;DataNode負責管理具體文件數據塊存儲;Secondary NameNode協助NameNode進行元數據的備份。HDFS的內部工作機制對客戶端保持透明,客戶端請求訪問HDFS都是通過向NameNode申請來進行。HDFS寫數據流程和HDFS讀數據流程總結如下:

1HDFS寫數據流程

Aclient發起文件上傳請求,通過RPCNameNode建立通訊,NameNode檢查目標文件是否已存在,父目錄是否存在,返回是否可以上傳;

Bclient請求第一個block該傳輸到哪些DataNode服務器上;

CNameNode根據配置文件中指定的備份數量及副本放置策略進行文件分配,返回可用的DataNode的地址,如:ABC

Dclient請求3DataNode中的一臺A上傳數據(本質上是一個RPC調用,建立pipeline),A收到請求會繼續調用B,然后B調用C,將整個pipeline建立完成,后逐級返回client

Eclient開始往A上傳第一個block,以packet為單位(默認64K),A收到一個packet就會傳給 BB 傳給 CA 每傳一個packet會放入一個應答隊列等待應答。

F.數據被分割成一個個packet數據包在pipeline上依次傳輸,在pipeline反方向上,逐個發送ack(命令正確應答),最終由pipeline中第一個DataNode節點Apipeline ack發送給client;

G.當一個block傳輸完成之后,client再次請求NameNode上傳第二個block到服務器。

2HDFS讀數據流程

AClient NameNode 發起 RPC 請求,來確定請求文件 block 所在的位置;

BNameNode 會視情況返回文件的部分或者全部block 列表,對于每個blockNameNode 都會返回含有該block副本的DataNode地址;

C.這些返回的DN地址,會按照集群拓撲結構得出 DataNode 與客戶端的距離,然后進行排序,排序兩個規則:網絡拓撲結構中距離 Client 近的排靠前;心跳機制中超時匯報的DN 狀態為STALE,這樣的排靠后;

DClient 選取排序靠前的DataNode來讀取block,如果客戶端本身就是DataNode,那么將從本地直接獲取數據;

E.底層上本質是建立Socket  StreamFSDataInputStream),重復的調用父類DataInputStreamread方法,直到這個塊上的數據讀取完畢;

F.當讀完列表的block后,若文件讀取還沒有結束,客戶端會繼續向NameNode獲取下一批的block列表;

G.讀取完一個block都會進行checksum驗證,如果讀取DataNode時出現錯誤,客戶端會通知 NameNode,然后再從下一個擁有該block副本的DataNode繼續讀。

Hread 方法是并行的讀取block信息,不是一塊一塊的讀取;NameNode只是返回Client 請求包含塊的DataNode地址,并不是返回請求塊的數據;

I.最終讀取來所有的block會合并成一個完整的最終文件。

看完上述內容,你們掌握HDFS的基本原理有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

靖边县| 博乐市| 宣化县| 三台县| 凭祥市| 宜昌市| 遵化市| 拉萨市| 福清市| 四平市| 筠连县| 株洲县| 崇礼县| 紫金县| 大竹县| 江孜县| 大同县| 长兴县| 郁南县| 礼泉县| 西青区| 东光县| 牡丹江市| 安康市| 潞西市| 孟村| 苗栗市| 天峻县| 马尔康县| 盐源县| 兰考县| 诏安县| 乌审旗| 剑川县| 昌乐县| 获嘉县| 岫岩| 从化市| 家居| 浦江县| 龙里县|