Hadoop -hdfs的讀寫請求

1、HDFS寫數據(宏觀):

1、首先,客戶端發送一個寫數據的請求,通過rpc與NN建立連接,NN會做一些簡單的校驗,文件是否存在,是否有空間存儲數據等。

2、NN就會將校驗的結果發送給客戶端,客戶端就會向NN發送請求,第一個block存儲在哪個DN中。

3、NN接受客戶端請求,就會根據block塊以及副本的數量來分配DN,并將對應的DN的地址返回給客戶端。

4、客戶端會向第一個DN發送請求,上傳數據,第一個DN接受到以后就會向下一個DN發送請求,直到最后一個DN,將整個pipline管道創建成功,在返回給客戶端。

5、此時客戶端會將block切分成多個package,以package的形式傳遞到DN中,在pipiline中依次傳輸,當傳輸到最后一個DN的時候,就會返回一個ack響應,當客戶端接收到最后一個DN傳輸過來的ack,此時package就傳輸完成,然后一次傳輸package。

6、當第一個block傳輸完成以后,客戶端就會請求NN上傳第二個block。

7、當所有的package傳輸完成后,管道就會關閉,數據傳輸成功。

2、HDFS寫數據請求(微觀:保證了在傳輸的過程中package不會發生錯誤):

1、首先,客戶端發送寫數據的請求,將磁盤中的數據從內存中提取出來,存放在客戶端的內存中。

2、當客戶端與NN之間通過rpc建立聯系后,獲取到第一個block存在的DN的地址,然后向第一個DN中發送寫數據的請求,第一個DN接收到后調用下一個DN,以此類推,在所有的DN之間建立pipline管道。

3、當pipline管道建立后,客戶端此時對每一個block在進行切分,分成多個package。

4、在客戶端,為了防止在傳輸過程package不會出錯,就會產生了兩個兩個隊列,分別是數據隊列(dataqueue)和確認隊列(Ackqueue)。

5、此時會將緩存中的package讀取到數據隊列,同時也會復制一份到確認隊列中?

6、然后數據隊列就會上傳數據,然后通過Pipline管道分別就是package依次發送到對應的dn中

7、當客戶端發送第一個package的時候,會有一個進程responseprosessor進程用來接收DN傳來的ack的響應,如果接受到的ack是true,說明這個package傳輸成功,此時ackqueue中的package就會刪除,反之ackqueue會將package復制一份給dataqueue重新發送,一直到收到的ack的狀態時true。

3、HDFS的讀數據請求:

1、客戶端通過rpc與NN建立連接,發送讀數據的請求

2、NN根據客戶端的請求,NN將block以及對應副本所對應的DN的地址返回返回個客戶端。

3、客戶端會根據返回來的DN地址,會根據網絡拓撲結構計算出與客戶端的距離,然后進行排序。

4、客戶端會選擇距離較近的DN中去讀取block,如果客戶端就在DN中,就會在自生讀取block,當block讀取完成后,文件讀取還沒有結束,此時客戶段會向NN繼續發送讀數據的請求,獲取下一批的block的地址。

5、最終客戶端會將這些讀取的block合并成一個文件。

4、package的結構:
1、package主要分成兩個部分:package? header 和package? data

一般的大小是64kb

haeder中存放的是:offset in block (在block中的偏移量),last packet in block (是不是block中的最后一個packet)

packdata中存放的是:chunk data (存儲的數據),chunk checksum(校驗文件,與chunkdata是一一對應的)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160737.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160737.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160737.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3、基礎入門——抓包封包協議APP小程序PC應用web應用

知識點 APP&小程序&PC抓包HTTP/S數據——Charles、Fiddler、Burpsuit;程序進程&網絡接口&其他協議抓包——Wireshark、科來網絡分析系統、TCPDump(linux);通訊類應用封包分析發送接收——WPE四件套封包、科來網絡分析系統。模擬器:逍遙…

解決requests庫進行爬蟲ip請求時遇到的錯誤的方法

目錄 一、超時錯誤 二、連接錯誤 三、拒絕服務錯誤 四、內容編碼錯誤 五、HTTP錯誤 在利用requests庫進行網絡爬蟲的IP請求時,我們可能會遇到各種錯誤,如超時、連接錯誤、拒絕服務等等。這些錯誤通常是由目標網站的限制、網絡問題或我們的爬蟲代碼中…

前端性能優化總結

這里寫目錄標題 頁面性能測試工具測試指標 前端頁面性能常見的問題前端頁面性能優化常見策略及方案dns優化------預解析域名(異步進行)http請求優化減少請求次數同時多開持久連接 前面面試url從輸入到確認搜索發生了什么js介紹new一個對象的過程&#xf…

Linux 進程等待

在2號手冊里查wait()。wait()等待任意一個子進程的狀態。 wait()等待成功會返回該子進程的id,返回失敗會返回-1: 小實驗 子進程的退出碼 子進程執行work(),父進程wait子進程。 子進程跑完5秒之后就e…

GCANet_Gated context aggregation network for image dehazing and deraining

2019、中科大港科、有代碼 Chen D, He M, Fan Q, et al. Gated context aggregation network for image dehazing and deraining[C]//2019 IEEE winter conference on applications of computer vision (WACV). IEEE, 2019: 1375-1383. GitHub - cddlyf/GCANet: Implementation…

丟掉破解版,官方免費了!!!

哈嘍!大家好。 幾天不見,今天給大家帶來一款海外的神器,官方宣布完全免費,但僅限于個人與教育用途,切勿商用噢! 不要看這個軟件名字普普通通,實際上內蘊乾坤! 接下來看我給大家炫一…

隊列的實現和OJ練習(c語言)

目錄 概念 隊列的實現 利用結構體存放隊列結構 為什么單鏈表不使用這種方法? 初始化隊列 小提示: 隊尾入隊列 隊頭出隊列 獲取隊頭元素 獲取隊尾元素 獲取隊列中有效元素個數 檢測隊列是否為空 銷毀隊列 最終代碼 循環隊列 隊列的OJ題 …

元素清空操作clear與選擇操作check

元素清空操作clear與選擇操作check clear() 作用 清空輸入框的所有內容.clear() 等價于 .type("{selectall}{backspace}") 語法 .clear() .clear(options)option選項 元素選中操作check與uncheck check 語法 // 所有匹配到的選擇框都會被選中一遍 .check()/…

CISP模擬考試(二)

免責聲明 文章僅做經驗分享用途,利用本文章所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,作者不為此承擔任何責任,一旦造成后果請自行承擔!!! 1.DDoS攻擊主要目的是: A.破壞完整性 B.破壞機密性 C.破壞可用性 D.破壞不可抵賴性 答案:…

三、防火墻-源NAT

學習防火墻之前,對路由交換應要有一定的認識 源NAT基本原理1.1.NAT No-PAT1.2.NAPT1.3.出接口地址方式(Easy IP)1.4.Smart NAT1.5.三元組 NAT1.6.多出口場景下的源NAT 總結延伸 ——————————————————————————————…

C語言prim算法求最小生成樹

Prim算法是一種用于尋找無向帶權圖的最小生成樹的算法。該算法的基本思想是從一個源點開始,逐步向外擴展生成樹,每次找到與當前生成樹最近的未被訪問的頂點,并將其加入到生成樹中,直到所有頂點都被加入到生成樹中為止。 具體來說…

部署你的第一個應用

🗓?實驗環境 OS名稱Microsoft Windows 11 家庭中文版系統類型x64-based PCDocker版本Docker version 24.0.6, build ed223bcminikube版本v1.32.0 🤓FastAPI 構建應用 #基于fastapi快速創建一個項目 rkun1LAPTOP-TUS5FU0D MINGW64 / $ mkdir k8s-appr…

1688 API接口測試指南

本文為您提供1688 API接口的測試指南。我們將介紹1688 API的基本概念,詳解測試步驟,并為您提供一系列的最佳實踐,以確保您在與1688平臺進行API交互時能夠獲得最佳的效果和穩定性。 一、了解1688 API 1688 API是1688平臺為開發者提供的一套用…

數學建模之擬合及其代碼

發現新天地,歡迎訪問Cr不是鉻的個人網站 引言 與插值問題不同,在擬合問題中不需要曲線一定經過給定的點。擬合問題的目標是尋求一個函數(曲線),使得該曲線在某種準則下與所有的數據點最為接近,即曲線擬合…

基于跳蛛算法優化概率神經網絡PNN的分類預測 - 附代碼

基于跳蛛算法優化概率神經網絡PNN的分類預測 - 附代碼 文章目錄 基于跳蛛算法優化概率神經網絡PNN的分類預測 - 附代碼1.PNN網絡概述2.變壓器故障診街系統相關背景2.1 模型建立 3.基于跳蛛優化的PNN網絡5.測試結果6.參考文獻7.Matlab代碼 摘要:針對PNN神經網絡的光滑…

7_畫圖常用代碼

plt.figure(dpi200) # 設置 dpi 為 200(可以根據需要調整這個值)

數據結構學習筆記——多維數組、矩陣與廣義表

目錄 一、多維數組(一)數組的定義(二)二維數組(三)多維數組的存儲(四)多維數組的下標的相關計算 二、矩陣(一)特殊矩陣和稀疏矩陣(二)…

從權限跳轉看Activity的data android:scheme

在應用申請懸浮窗權限的時候,可以跳轉到相應的設置界面,并且自動切換到應用的條目,高亮顯示一下, android懸浮窗權限怎么申請 在Android中,要申請懸浮窗權限,需要以下步驟: 在 AndroidManifes…

hp惠普Victus Gaming Laptop 15-fa1025TX/fa1005tx原裝出廠Win11系統ISO鏡像

光影精靈9筆記本電腦原廠W11系統22H2恢復出廠時開箱狀態一模一樣 適用型號:15-fa1003TX,15-fa1005TX,15-fa1007TX,15-fa1025TX 鏈接:https://pan.baidu.com/s/1fBPjed1bhOS_crGIo2tP1w?pwduzvz 提取碼&#xff1a…

每天一道算法題(十一)——滑動窗口最大值_困難(中等)

文章目錄 1、問題2、示例3、解決方法(1)方法1——雙指針 總結 1、問題 給你一個整數數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。 返回 滑動窗…