Hadoop HDFS 常見問題 二

2021-09-10 12:05:36 字數 1934 閱讀 3423

hdfs

*****

1.hdfs為什麼不適合儲存大量小檔案?

答:(1)大小量檔案的元資料會占用namenode大量記憶體空間

解析: 檔案的元資料(包括檔案被分成了哪些blocks,每個block儲存在哪些伺服器的哪個block塊上),都是儲存在namenode上的。

hdfs的每個檔案、目錄、資料塊占用150b,因此300m記憶體情況下,只能儲存不超過300m/150=2m個檔案/目錄/資料塊的元資料 。

(2)磁碟尋道時間超過讀取時間

解析:hdfs為了使資料的傳輸速度和硬碟的傳輸速度接近,則設計將尋道時間(seek)相對最小化,將block的大小設定的比較大,這樣讀寫資料塊的時間將遠大於尋道時間,接近於硬碟的傳輸速度。

2.hdfs 何時離開安全模式?

答:activenamenode啟動時hdfs進入安全模式唯讀,datanode主動匯報可用block的可用情況

即上報率=可用block數量/namenode元資料記錄的block數》=99.9%時離開安全模式

何時觸發安全模式?

1.namenode記憶體不夠;2.datanode無法啟動;3.namenode重啟;4.block上報率低閾值;5.日至報錯;6.強制關機

3.activenn與standbynn的切換?

答:**m機制實現最終一致,允許延遲,journalnode(2n+1)只要n+1個寫入成功即可,他寫edits編輯日誌檔案,activenn掛掉standbynn狀態變為active

4.hdfs寫檔案過程?

答:(1)客戶端請求上傳檔案,輸入命令;

(2)檢查hdfs目錄,允許上傳;

(3)客戶端將檔案切塊block並請求namenode;

(4)namenode返回datanode資訊;

(5)客戶端與datanode建立傳輸,寫成功後通知namenode;/先寫資料再寫日誌

(6)更新edits編輯日誌(立即)和fsimage檔案(定期)寫入namenode,同時寫入journalnode,最後寫入記憶體(最新);

(7)後面standbynn與activenn定期同步。

5.hdfs優缺點?

優點:高可用(namenodeha),高容錯(冗餘多副本),高擴充套件(10k),海量資料,成本低

缺點:大量小檔案不可存,不支援併發寫入,不支援低延時,不支援隨機。

6.hdfs元資料倆種儲存方式?

記憶體元資料:namenode

檔案元資料:edits+fsimage

7.hdfs最小檔案儲存單元 block?

(1)儲存在datanode,大小預設128m,多副本、均勻分布在多個datanode(預設三個副本);

(2)block放置策略:副本1放在clinet 副本2放在另一台機架,副本3放在和副本2一起的另外節點,其他隨意;

(3)block檔案 命名:「 blk blk_檔案大小」

8.hdfs各個角色

(1)activenn作用:

唯一的集群管理節點;管理hdfs檔案系統命名空間;維護元資料資訊(檔案位置、許可權、塊資訊等);處理客戶端請求;管理塊策略

(2)standbynn作用:

備份master節點宕機後替換activenn;週期同步activenn的edits檔案,並定期合併fsimage檔案和edits到本地磁碟;

(3)namenode作用:

儲存元資料(fsimage+edits),fsimage(檔案塊資訊、位置、目錄、副本數),edits(檔案操作記錄)

(4)datanode作用:

slive工作節點;儲存資料block;定期與namenode心跳匯報block資訊(集群啟動有可用block數匯報);客戶端的資料讀寫操作;

9.hdfs高可用?

通過**m機制部署2n+1個journalnode節點,n+1個操作成功(寫edits)即可,利用zk選舉active節點

Hadoop Spark 常見問題 二

spark 1.rdd?資料集拆分 資料儲存在記憶體或者磁碟 多分割槽 失效自動重構 轉換操作構造 2.rdd倆種依賴?窄依賴 父rdd中的分割槽最多只能被乙個子rdd的乙個分割槽使用 和寬依賴 子rdd依賴於所有父rdd 3.spark 角色?1.driver main函式在裡面 2.sparco...

常見問題 朗動常見問題

常見問題一 方向盤變沉 檢查胎壓是否正常,輪胎是否過度磨損。助力幫浦不工作,前輪氣壓低。冬天的話,冷車在冬天助力油比較稠,方向會重一點。檢查轉向助力油。1 應該是是助力系統有問題或則助力潤滑油有問題。2 如果你在駕車時感覺方向盤變緊,汽車偏向一側,需要檢查輪胎,或進行車輪平衡 定位。在這些問題剛剛發...

UITableView常見問題總結(二)

廢話不多說,直奔主題.1.如何將cell中的分割線頂頭顯示,具體實現方法如下 self setlayoutmargins uiedgeinsetsmake 0 0,0 0 self setseparatorinset uiedgeinsetsmake 0 0,0 0 cell setlayoutma...