Hadoop學習回顧之HDFS提綱

2021-08-25 11:43:03 字數 1542 閱讀 9858

hdfs的設計理念:

超大儲存

廉價x86伺服器

流式資料訪問(一次寫入,多次讀取,如果不借助hue,無法直接對hdfs檔案進行修改儲存,需要利用 hdfs dfs –put命令)

hdfs缺點:

實時訪問弱,如要求秒級或者毫秒級資料訪問,考慮使用hbase

不適合儲存大量小檔案,hdfs啟動時,namenode將所有元資料讀至記憶體,一條元資料150b,記憶體小會對namenode有極大壓力,解決方法,hdfs聯邦

hdfs架構:

namenode,secondary namenode,datanode,common storage

namenode和其冷備secondary namenode:

snn引導nn滾動更新edit log,將新的操作寫入editlog.new

snn將nn的時間最近的fsimage和時間最近的editlog複製到snn的檢查點

snn將fsimage+editlog合併成新的fsimage,將新的fsimage寫入磁碟。

snn將新的fsimage返回給nn,nn接受fsimage直接載入和應用。nn將editlog.new 更名為edit log

hdfs三副本,兩冗餘,副本儲存策略選擇,隨機選擇乙個datanode->另一機架節點

->與副本

2同機架的隨機另一節點,策略選定後,會根據集群網路拓撲建立管道。

hdfs讀與寫:

讀:hdfs客戶端請求,nn返回資料塊,主機名,hdfs client再次向datanode請求資料塊

寫:客戶端與三個要寫入資料的datanode的寫入順序與寫完響應,手拉手成環。

hdfs以寫方式開啟text.txt

請求送達至namenode建立對應的元資料,但不與block關聯

資料寫入流,資料自動拆分成資料報。開啟複製管道,管道類似於程序鎖複製,

一批完成繼續複製下一批,完成後結束。

namenode ha:(熱備)

技術點及其實現:

主備同步,備節點共享儲存,qjm週期性獲取編輯日誌(paxos演算法),zookeeper的選主機制

防止腦裂,防止突然都掛死或者突然都具備控制權。共享儲存進行隔離,客戶端隔離

切換上層應用無感知。rpc封裝,失敗連線新的namenode,對應使用者幾乎無感知。

hdfs聯邦:

hdfs federation+viewfs

hdfs federation+viewfs+ha

hdfs元資料遷移,fastcopy,全域性硬鏈結?

hdfs命令列介面:

hdfs dfs –ls /,hdfs dfs –lsr,hdfs dfs –expunge (清空**站,rm的第一步是mv到trash目錄),hdfs dfs –cat ,hdfs dfs –touchz,hdfs dfs –mkdir ,hdfs dfs –put/copyfromlocal,hdfs dfs –get/copytolocal

Hadoop學習之HDFS架構 二

hdfs可以跨越大集群中的機器可靠地儲存非常大的檔案,將檔案儲存為一系列的塊,除了最後乙個塊外,所有的塊的大小都是相同的。當然若檔案大小正好為塊大小的倍數則所有塊的大小相同。為了容錯的目的,乙個檔案的塊會被複製成若干份,塊大小和複製因子是可配置的。應用程式可以指定檔案的副本數量,複製因子可以在檔案建...

Hadoop學習之HDFS讀流程

hdfs讀流程圖 假設需要讀取hdfs根目錄下的bigdata.log檔案,使用如下命令 整個流程如下 1 客戶端會呼叫distributedfilesystem.open方法與namenode進行rcp通訊,namenode會返回該檔案的部分或全部的 block列表 也包含該列表各block的分布...

hadoop學習筆記(HDFS)

hdfs的設計基礎與目標 1 硬體錯誤是常態,因此需要冗餘。2 為大資料而生,流式讀寫,批量讀取而非隨機讀寫。擅長資料分析而不是事務處理。3 大規模資料集。4 一次寫多次讀邏輯設計,即一旦寫入,只能讀,不能修改。5 程式才用 資料就近 原則分配節點執行。hdfs的可靠性 冗餘副本策略 機架策略 心跳...