色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文解析HDFS架構及讀取寫入數據流程

姚小熊27 ? 來源:51cto ? 作者:51cto ? 2021-01-28 14:04 ? 次閱讀

Hadoop到目前為止發展已經有10余年,版本經過無數次的更新迭代,目前業內大家把Hadoop大的版本分為Hadoop1.0、Hadoop2.0、Hadoop3.0 三個版本。

一、Hadoop 簡介

Hadoop版本剛出來的時候是為了解決兩個問題:一是海量數據如何存儲的問題,一個是海量數據如何計算的問題。Hadoop的核心設計就是HDFS和 Mapreduce.HDFS解決了海量數據如何存儲的問題, Mapreduce解決了海量數據如何計算的問題。HDFS的全稱:Hadoop Distributed File System。

二、分布式文件系統

圖片 HDFS其實就可以理解為一個分布式文件系統,可以看如圖1所示有4個服務器是不是都有他自己的文件系統都可以進行存儲數據,假設每個服務器的存儲空間存儲10G的數據。假設數據量很小的時候存儲10G的數據還是ok的當數據量大于服務器的存儲空間時是不是單個服務器就沒法存儲了。 我們是不是可以在服務器中部署一個Hadoop這樣就能構建出一個集群(超級大電腦)。這樣就存儲 4*10=40G的數據量,這樣我們面向用戶時是不是只有一臺超級大的電腦相當于一個分布式文件系統。

HDFS是一個主從的架構、主節點只有一個NemeNode。從節點有多個DataNode。

三、HDFS 架構

圖片 假設我們這里有5臺服務器每臺服務器都部署上Hadoop,我們隨便選擇一臺服務器部署上NameNode剩下服務器部署上DataNode。

客戶端上傳文件時假設文件大小為129MHDFS默認切分的大小為128M這時就會產生出2個blkNameNode去通知DataNode上傳文件(這里有一定的策略),我們就假設就將這幾個文件分別存儲在4個服務器上。為什們要進行分別存儲在,假設DataNode服務器有一天突然掛掉了我們是不是還可通過DataNode4或2和3進行讀取數據,這樣是不是就防止數據丟失。

NameNode

管理元數據信息(文件目錄樹):文件與Block塊,Block塊與DataNode主機關系 NameNode為快速響應用戶操作,所以把元數據信息加載到內存里

DataNode

存儲數據,把上傳的數據劃分固定大小文件塊(Block)在Hadoop2.73之前是64M之后改為了128M 為了保證數據安全,每個文件默認都是三個副本

SecondaryNamenode

周期性的到NameNode節點拉取Edtis和fsimage文件,將這兩個文件加入到內存進行 然后將這兩個文件加入到內存中進行合并產生新的fsimage發送給NameNode。

四、HDFS寫入數據流程

客戶端會帶著文件路徑向NameNode發送寫入請求通過 RPC 與 NameNode 建立通訊, NameNode 檢查目標文件,返回是否可以上傳; Client 請求第一個 block 該傳輸到哪些 DataNode 服務器上; NameNode 根據副本數量和副本放置策略進行節點分配,返回DataNode節點,如:A,B,C Client 請求A節點建立pipeline管道,A收到請求會繼續調用B,然后B調用C,將整個pipeline管道建立完成后,逐級返回消息到Client; Client收到A返回的消息之后開始往A上傳第一個block塊,block塊被切分成64K的packet包不斷的在pepiline管道里傳遞,從A到B,B到C進行復制存儲 當一個 block塊 傳輸完成之后,Client 再次請求 NameNode 上傳第二個block塊的存儲節點,不斷往復存儲 當所有block塊傳輸完成之后,Client調用FSDataOutputSteam的close方法關閉輸出流,最后調用FileSystem的complete方法告知NameNode數據寫入成功

五、HDFS讀取數據流程

客戶端會先帶著讀取路徑向NameNode發送讀取請求,通過 RPC 與 NameNode 建立通訊,NameNode檢查目標文件,來確定請求文件 block塊的位置信息 NameNode會視情況返回文件的部分或者全部block塊列表,對于每個block塊,NameNode 都會返回含有該 block副本的 DataNode 地址 這些返回的 DataNode 地址,會按照集群拓撲結構得出 DataNode 與客戶端的距離,然后進行排序,排序兩個規則:網絡拓撲結構中距離 Client 近的排靠前;心跳機制中超時匯報的 DN 狀態為 STALE,這樣的排靠后; Client 選取排序靠前的 DataNode 調用FSDataInputSteam的read方法來讀取 block塊數據,如果客戶端本身就是DataNode,那么將從本地直接獲取block塊數據 當讀完一批的 block塊后,若文件讀取還沒有結束,客戶端會繼續向NameNode 獲取下一批的 block 列表,繼續讀取 所有block塊讀取完成后,Client調用FSDataInputStream.close()方法,關閉輸入流,并將讀取來所有的 block塊合并成一個完整的最終文件

六、HDFS缺陷

注意:早期版本

單點問題 內存受限

總結

上述給大家講解了簡單的HDFS架構,我在最后面留了一個小問題,我會在下期通過畫圖的方式給大家講解,我在這里為大家提供大數據的資料需要的朋友可以去下面GitHub去下載,信自己,努力和汗水總會能得到回報的。
責任編輯:YYX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數據
    +關注

    關注

    8

    文章

    7074

    瀏覽量

    89153
  • 存儲
    +關注

    關注

    13

    文章

    4323

    瀏覽量

    85930
  • HDFS
    +關注

    關注

    1

    文章

    30

    瀏覽量

    9616
收藏 人收藏

    評論

    相關推薦

    芯片封測架構和芯片封測流程

    在此輸入導芯片封測芯片封測是個復雜且精細的過程,它涉及多個步驟和環節,以確保芯片的質量和性能。本文對芯片封測架構和芯片封測流程進行概述。 ? ? 1 芯片封測 芯片封測,即芯片封裝測試,是芯片制造
    的頭像 發表于 12-31 09:15 ?269次閱讀
    芯片封測<b class='flag-5'>架構</b>和芯片封測<b class='flag-5'>流程</b>

    使用STM32的spi與AFE4400通信,每寫入讀取數據都需要等待幾百微秒后才能繼續操作否則讀取數據都是0,為什么?

    使用STM32的spi與AFE4400通信,每寫入讀取數據都需要等待幾百微秒后才能繼續操作,否則讀取
    發表于 12-13 06:13

    使用ads1219這款模數轉換器,讀寫流程和使用single-shot模式和continuous的區別是什么?

    ,如果我是使用continuous模式,是不是我開始只要把配置好的數據和START/SYNC寫進去,就可以開始continuous轉換了? 針對我這個讀取單端兩路模擬信號,我設計的I2C寫讀的
    發表于 12-10 06:12

    請問TLV320AIC3254EVM-K怎么讀取音頻數據流

    您好,我在學習TLV320AIC3254EVM-K開發板的過程中碰到個這樣的問題,TI提供的軟件是否具備讀取I2S的音頻數據流的功能,或者是否有PC機軟件可以讀取音頻
    發表于 10-31 06:14

    日志數據流

    日志數據流圖 日志系統數據流圖 系統進行日志收集的過程可以分為三個環節: (1)日志收集和導入ElasticSearch (2)ElasticSearch進行索引等處理 (3)可視化操作,查詢等
    的頭像 發表于 08-21 15:00 ?322次閱讀
    統<b class='flag-5'>一</b>日志<b class='flag-5'>數據流</b>圖

    自動售貨機MDB協議中文解析(六)MDB-RS232控制硬幣器的流程解析

    自動售貨機MDB協議中文解析(六)MDB-RS232控制硬幣器的流程解析
    的頭像 發表于 08-19 15:53 ?685次閱讀
    自動售貨機MDB協議中文<b class='flag-5'>解析</b>(六)MDB-RS232控制硬幣器的<b class='flag-5'>流程</b>和<b class='flag-5'>解析</b>

    ESP32可以直接寫入RX的高低電平,和直接讀取TX的高低電平嗎?

    如果串口的rx和tx的高低電平都是通過代碼得到的狀態,想把這個高低電平的變化解析成串口數據流,在不占用IO的情況下能否解析數據? 也就是在includesocuart_struct
    發表于 06-07 08:20

    請問如何從APPL_InputMapping和APPL_OutputMapping讀取數據

    我有個簡介,如下所示、 我可以讀取寫入 0x6000 和 0X7000 的數據,但無法讀取
    發表于 05-21 08:19

    STM32F030 FLASH存儲,第二次或者多次寫入或者擦除的時候讀取不到數據是為什么?

    最新在用STM32F030 因為沒有外部存儲設備,現在用的是芯片的FLASH來當存儲,現在遇到的問題是刷次程序后,第讀取可以讀取到,當第二次或者多次
    發表于 04-10 07:34

    解析DARM工藝流程

    DRAM(動態隨機存取存儲器)的工藝流程包括多個關鍵步驟。
    發表于 04-05 04:50 ?5574次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>解析</b>DARM工藝<b class='flag-5'>流程</b>

    交換芯片架構設計

    交換芯片的架構設計是網絡設備性能和功能的關鍵。個高效的交換芯片架構能夠處理大量的數據流量,支持高速數據傳輸,并提供先進的網絡功能。
    的頭像 發表于 03-21 16:28 ?557次閱讀

    空指針區域寫入數據會hardfault,為什么測試時讀取卻不會hardfault?

    空指針區域寫入數據會hardfault,這個大家都知道, 但是測試時發現讀取時卻不會,這是為什么?有人知道嗎?
    發表于 03-14 08:20

    ?PLC從HTTP服務端獲取JSON文件,解析數據到寄存器

    文件提交給HTTP的服務端; 服務端有返回的JSON,或者GET命令獲取到的JSON,網關進行解析后將數據寫入到PLC寄存器。 本文主要描述通過GET命令獲取數據
    發表于 01-24 09:47

    MB96F346RSBPMC如何向閃存讀取/寫入數據

    對于 MB96F346RSBPMC,我不知道如何向閃存讀取/寫入數據。 有人可以指定用于讀/寫編程的編程引腳和接口嗎?
    發表于 01-19 06:27

    怎么簡單實現由Labview讀取的串口數據自增寫入mysql5.7數據庫中?

    怎么簡單實現由Labview讀取的串口數據自增寫入mysql5.7數據庫中? 已實現:串口數據的接收處理 mysql5.7的安裝(已測試
    發表于 01-11 22:05
    主站蜘蛛池模板: 久久WWW免费人成一看片| 精品国产影院| 国内免费视频成人精品| 色色男_免费| 擼擼擼麻豆密臀AV| 亚洲欧美日韩高清中文在线| 丰满大屁俄罗斯肥女| 国产在线高清视频| 蜜柚影院在线观看免费高清中文 | 99热6精品视频6| 国产亚洲999精品AA片在线爽| 理论片午午伦夜理片影院| 一久久| 九九热久久只有精品2| 亚洲免费福利在线视频| 超碰97超碰在线视频哦| 精品96在线观看影院| 亚洲精品拍拍央视网出文| 簧片在线观看| 又粗又大又爽又黄的免费视频| 国产跪地吃黄金喝圣水合集| 蜜桃99影院| yellow2019在线观看视频 | 草莓视频在线播放视频| 日本高清天码一区在线播放| 在野外被男人躁了一夜动图| 狂操空姐电影| 影音先锋电影资源av| 噜噜噜狠狠夜夜躁精品| 99精品在线免费| 色偷偷影院| 韩国伦理电影在线神马网| 在线观看日本免费| 欧美最猛性XXX孕妇| 99国产视频| 久久只精品99品免费久| 97成人免费视频| 美女直播喷水| 大地影院在线播放| 日本黄色www| 国产亚洲精品福利视频|