中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

HDFS如何讀寫數據

發布時間:2021-12-09 11:15:27 來源:億速云 閱讀:189 作者:小新 欄目:大數據

這篇文章主要介紹HDFS如何讀寫數據,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

寫:

HDFS如何讀寫數據

示例:上傳一個200M的文件到HDFS分布式系統
執行流程:
1、client向NameNode發送上傳文件的請求,NameNode會做校驗。
--(檢查是否具備權限,上傳路徑是否存在,文件是否以存在,是否執行覆蓋操作等)

2、NameNode響應客戶端,可以上傳文件

3、client按照集群中塊大小的設置對200M的數據進行切塊,即切分為128M和72M兩個block塊,并請
求返回DataNode節點信息 。
     a.執行上傳時,是一塊一塊進行上傳,則先請求上傳0~128M的塊信息(第一個block塊),因為
數據真實存在DataNode節點上,所以NameNode會返回dn1\dn2\dn3三個服務器節點存儲數據。

--副本存儲節點選擇機制,如何選擇節點并返回?(見圖NameNode部分)
--為什么明明只往一個節點傳,還要返回三個節點?(我覺得如果只返回一個節點,如果那個節點
掛了,就不知道往哪傳了,所以返回三個,dn1故障了可以選擇往dn2或dn3傳。)

4、client得到dn的信息后,會和dn服務器節點建立鏈接,client發送請求建立block傳輸通道,執行寫數據操作 
	a.client在和dn建立連接時,也會有選擇,選擇距離客戶端最近的節點請求建立鏈接通道(假設dn1最近)
	b.client和dn1建立鏈接通道之后,dn1內部發請求到dn2,請求建立通道,dn2發請求到dn3,請求建立通道,
	dn3響應dn2,dn2響應dn1,dn1響應client ,均沒有問題,通道建立成功
	
5、數據傳輸時,不是說將128M的文件直接進行傳輸,而是client向dn1以Packet為單位進行數據傳輸,(packet大小:64KB),
每次傳輸64KB,最后一次傳輸數據大小可能不夠64KB。
     a.client向dn1傳輸64KB的數據到內存,dn1落盤(在當前節點服務器上將數據由內存寫到本地),并分發給dn2(內存),
 dn2落盤,在發給dn3(內存),dn3落盤     	--邏輯上的說法
     b.chunk數據傳輸過程中的最小單位(512字節),每次從0~128M中讀數據,先讀取512字節放入chunk中,當chunk滿
載時,對chunk內的數據進行校驗,生成校驗和(占4個字節),即共將516個字節放入Packet內,一個Packet存在N多個chunk								   --真實說法
     c.各節點內部Packet是如何進行傳輸的?
     在hdfs內部有一個隊列,叫做dataQuene(緩沖隊列),每傳輸一個Packet,就將當前Packet放入到DQ隊列中,當dn1
接收到DQ中的Packet時,會將Packet從DQ隊列中拉取出來,存入另一隊列ackQuene中(應答隊列),當dn1,dn2,dn3等節點均將ackq中的數據寫成功之后,ackquene中的packet移除,表示packet傳輸完成

6、當dn1、dn2、dn3建立通道時,或者在數據傳輸過程中,如果某個節點出現問題,比如dn2宕機了,那么客戶端會重新發
請求建立傳輸通道,這時,宕機的節點dn2不在請求應答,dn1 和 dn3直接建立通道,dn2不在使用,缺少副本數據,內部機器會重新配置一臺來頂替dn2,保證真實節點數據和副本機
制設置的保持一致

7、數據傳輸完成之后,流關閉,執行第二個塊的數據寫操作,步驟同上

讀:

HDFS如何讀寫數據

示例:從HDFS系統下載一個200M的文件到本地
1、client向NameNode發送下載文件請求,NameNode向client返回目標文件的元數據

2、client根據元數據,通過FSDataInputStream進行讀取,client和距離客戶端最近的dn節點建立傳輸通道
     a.注意:讀數據,只需要與一個節點建立通道即可,只要可以讀一次,取到真實數據就行

3、讀數據也是以Packet為單位,注意,第一次讀取時可能會取到第一個塊的數據,但是第二個塊可能存在其它
節點上,這時,其余數據的讀取需要client與其它節點重新建立通道進行讀取。

4、多個塊讀取到client之后,在client會進行緩存,然后合并寫入目標文件,保證讀取的真實數據的完整性

以上是“HDFS如何讀寫數據”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

桑日县| 哈巴河县| 淮南市| 察隅县| 丰镇市| 娄烦县| 泸西县| 遂平县| 翼城县| 华容县| 沙雅县| 雷州市| 湖州市| 云浮市| 安图县| 永仁县| 双辽市| 东乌珠穆沁旗| 砀山县| 宁南县| 区。| 兴安盟| 乌海市| 上虞市| 尉氏县| 开化县| 沂水县| 莱芜市| 鄂托克前旗| 辽中县| 湟中县| 盈江县| 年辖:市辖区| 三河市| 灌阳县| 苍南县| 石泉县| 宣恩县| 清徐县| 南康市| 台湾省|