大數據面試題集錦-Hadoop面試題(二)-HDFS

来源:https://www.cnblogs.com/the-pig-of-zf/archive/2023/06/01/17447885.html
-Advertisement-
Play Games

> 你準備好面試了嗎?這裡有一些面試中可能會問到的問題以及相對應的答案。如果你需要更多的面試經驗和麵試題,關註一下"張飛的豬大數據分享"吧,公眾號會不定時的分享相關的知識和資料。 [TOC] ## 1、 HDFS 中的 block 預設保存幾份? 預設保存3份 ## 2、HDFS 預設 BlockS ...


你準備好面試了嗎?這裡有一些面試中可能會問到的問題以及相對應的答案。如果你需要更多的面試經驗和麵試題,關註一下"張飛的豬大數據分享"吧,公眾號會不定時的分享相關的知識和資料。

目錄

1、 HDFS 中的 block 預設保存幾份?

預設保存3份

2、HDFS 預設 BlockSize 是多大?

預設64MB

3、負責HDFS數據存儲的是哪一部分?

DataNode負責數據存儲

4、SecondaryNameNode的目的是什麼?

他的目的使幫助NameNode合併編輯日誌,減少NameNode 啟動時間

5、文件大小設置,增大有什麼影響?

HDFS中的文件在物理上是分塊存儲(block),塊的大小可以通過配置參數( dfs.blocksize)來規定,預設大小在hadoop2.x版本中是128M,老版本中是64M。
  思考:為什麼塊的大小不能設置的太小,也不能設置的太大?
  HDFS的塊比磁碟的塊大,其目的是為了最小化定址開銷。如果塊設置得足夠大,從磁碟傳輸數據的時間會明顯大於定位這個塊開始位置所需的時間。因而,傳輸一個由多個塊組成的文件的時間取決於磁碟傳輸速率。
  如果定址時間約為10ms,而傳輸速率為100MB/s,為了使定址時間僅占傳輸時間的1%,我們要將塊大小設置約為100MB。預設的塊大小128MB。
  塊的大小:10ms×100×100M/s = 100M,如圖
在這裡插入圖片描述
  增加文件塊大小,需要增加磁碟的傳輸速率。

6、hadoop的塊大小,從哪個版本開始是128M

Hadoop1.x都是64M,hadoop2.x開始都是128M。

7、HDFS的存儲機制(☆☆☆☆☆)

HDFS存儲機制,包括HDFS的寫入數據過程和讀取數據過程兩部分

HDFS寫數據過程
在這裡插入圖片描述
  1)客戶端通過Distributed FileSystem模塊向NameNode請求上傳文件,NameNode檢查目標文件是否已存在,父目錄是否存在。
  2)NameNode返回是否可以上傳。
  3)客戶端請求第一個 block上傳到哪幾個datanode伺服器上。
  4)NameNode返回3個datanode節點,分別為dn1、dn2、dn3。
  5)客戶端通過FSDataOutputStream模塊請求dn1上傳數據,dn1收到請求會繼續調用dn2,然後dn2調用dn3,將這個通信管道建立完成。
  6)dn1、dn2、dn3逐級應答客戶端。
  7)客戶端開始往dn1上傳第一個block(先從磁碟讀取數據放到一個本地記憶體緩存),以packet為單位,dn1收到一個packet就會傳給dn2,dn2傳給dn3;
dn1每傳一個packet會放入一個應答隊列等待應答。
  8)當一個block傳輸完成之後,客戶端再次請求NameNode上傳第二個block的伺服器。(重覆執行3-7步)。

HDFS讀數據過程
在這裡插入圖片描述
  1)客戶端通過Distributed FileSystem向NameNode請求下載文件,NameNode通過查詢元數據,找到文件塊所在的DataNode地址。
  2)挑選一臺DataNode(就近原則,然後隨機)伺服器,請求讀取數據。
  3)DataNode開始傳輸數據給客戶端(從磁碟裡面讀取數據輸入流,以packet為單位來做校驗)。
  4)客戶端以packet為單位接收,先在本地緩存,然後寫入目標文件。

8、secondary namenode工作機制(☆☆☆☆☆)

在這裡插入圖片描述
1)第一階段:NameNode啟動
  (1)第一次啟動NameNode格式化後,創建fsimage和edits文件。如果不是第一次啟動,直接載入編輯日誌和鏡像文件到記憶體。
  (2)客戶端對元數據進行增刪改的請求。
  (3)NameNode記錄操作日誌,更新滾動日誌。
  (4)NameNode在記憶體中對數據進行增刪改查。

2)第二階段:Secondary NameNode工作
  (1)Secondary NameNode詢問NameNode是否需要checkpoint。直接帶回NameNode是否檢查結果。
  (2)Secondary NameNode請求執行checkpoint。
  (3)NameNode滾動正在寫的edits日誌。
  (4)將滾動前的編輯日誌和鏡像文件拷貝到Secondary NameNode。
  (5)Secondary NameNode載入編輯日誌和鏡像文件到記憶體,併合並。
  (6)生成新的鏡像文件fsimage.chkpoint。
  (7)拷貝fsimage.chkpoint到NameNode。
  (8)NameNode將fsimage.chkpoint重新命名成fsimage。

9、NameNode與SecondaryNameNode 的區別與聯繫?(☆☆☆☆☆)

機制流程看第7題

1)區別
  (1)NameNode負責管理整個文件系統的元數據,以及每一個路徑(文件)所對應的數據塊信息。
  (2)SecondaryNameNode主要用於定期合併命名空間鏡像和命名空間鏡像的編輯日誌。

2)聯繫:
  (1)SecondaryNameNode中保存了一份和namenode一致的鏡像文件(fsimage)和編輯日誌(edits)。
  (2)在主namenode發生故障時(假設沒有及時備份數據),可以從SecondaryNameNode恢複數據。

10、HDFS組成架構(☆☆☆☆☆)

架構主要由四個部分組成,分別為HDFS Client、NameNode、DataNode和Secondary NameNode。下麵我們分別介紹這四個組成部分。
在這裡插入圖片描述
1)Client:就是客戶端。
  (1)文件切分。文件上傳HDFS的時候,Client將文件切分成一個一個的Block,然後進行存儲;
  (2)與NameNode交互,獲取文件的位置信息;
  (3)與DataNode交互,讀取或者寫入數據;
  (4)Client提供一些命令來管理HDFS,比如啟動或者關閉HDFS;
  (5)Client可以通過一些命令來訪問HDFS;
2)NameNode:就是Master,它是一個主管、管理者。
  (1)管理HDFS的名稱空間;
  (2)管理數據塊(Block)映射信息;
  (3)配置副本策略;
  (4)處理客戶端讀寫請求。
3)DataNode:就是Slave。NameNode下達命令,DataNode執行實際的操作。
  (1)存儲實際的數據塊;
  (2)執行數據塊的讀/寫操作。
4)Secondary NameNode:並非NameNode的熱備。當NameNode掛掉的時候,它並不能馬上替換NameNode並提供服務。
  (1)輔助NameNode,分擔其工作量;
  (2)定期合併Fsimage和Edits,並推送給NameNode;
  (3)在緊急情況下,可輔助恢復NameNode。

11、HAnamenode 是如何工作的? (☆☆☆☆☆)

在這裡插入圖片描述
ZKFailoverController主要職責
  1)健康監測:周期性的向它監控的NN發送健康探測命令,從而來確定某個NameNode是否處於健康狀態,如果機器宕機,心跳失敗,那麼zkfc就會標記它處於一個不健康的狀態。
  2)會話管理:如果NN是健康的,zkfc就會在zookeeper中保持一個打開的會話,如果NameNode同時還是Active狀態的,那麼zkfc還會在Zookeeper中占有一個類型為短暫類型的znode,當這個NN掛掉時,這個znode將會被刪除,然後備用的NN,將會得到這把鎖,升級為主NN,同時標記狀態為Active。
  3)當宕機的NN新啟動時,它會再次註冊zookeper,發現已經有znode鎖了,便會自動變為Standby狀態,如此往複迴圈,保證高可靠,需要註意,目前僅僅支持最多配置2個NN。
  4)master選舉:如上所述,通過在zookeeper中維持一個短暫類型的znode,來實現搶占式的鎖機制,從而判斷那個NameNode為Active狀態

原文鏈接:
張飛的豬大數據面試題集錦
大數據面試題集錦-Hadoop面試題(二)-HDFS
Hadoop面試題(二)-HDFS

本文來自博客園,作者:張飛的豬,轉載請註明原文鏈接:https://www.cnblogs.com/the-pig-of-zf/p/17447885.html

公眾號:張飛的豬大數據分享,不定期分享大數據學習的總結和相關資料,歡迎關註。

個人網站"張飛的豬編程工作室"鏈接: https://zhangfeidezhu.com


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 雖然之前收集過網名資料庫,比如:《4萬個性網名大全網路名稱大全ACCESS資料庫》、《8萬多個網名大全QQ網名ACCESS資料庫》,但是都包含有~!#@等特殊符號,而今天這份則是沒有特殊符號的,並且記錄數達到了71萬且網名沒有重覆。 分類統計:搞笑網名(20577)、男生網名(66783)、女生網名 ...
  • # [MySQL--SQL優化] # 1、insert優化(插入數據優化) - ## 建議使用批量插入 ```MYSQL # 批量插入避免頻繁連接斷開資料庫(一次連接插入多條數據) insert into 表名 values(數據1),(數據2),(數據3)...... ``` - ## 建議手動提 ...
  • 摘要:應用運維管理平臺(AOM)和Cassandra是兩個不可分割的組成部分,它們共同構成了一個高效的解決方案,可以幫助企業在應用運維業務上取得巨大的優勢。在這篇文章中,我們將介紹AOM和Cassandra的優勢和特點,揭曉它們如何為企業保持市場競爭力的秘密。 本文分享自華為雲社區《海量數據運維要給 ...
  • 背景 最近有個同事對字元串加索引,加完後,發現多了個奇奇怪怪的數字執行的SQL如下: alter table string_index_test add index `idx_name` (`name`) USING BTREE; 這個奇怪數字就是191,它很是疑惑,也沒指定索引的長度通過查看MyS ...
  • 英語類的數據其實已經有很多很多人,但是不同的需求適合的也會是各種的不同,甚至可能需要將多個相關的數據整合起來應用,而今天這份資料庫對於整合來說是非常方便的,因為它是以單詞為關鍵詞進行各種關聯的,也就是說只要是英語類的數據都可以與這份數據關聯起來。 這個數據的好處在於有17830個英語的真人讀音MP3 ...
  • 本文將從 [FTP Connector ](https://www.dtstack.com/resources/1044?src=szsm)的功能詳解,[自定義文件切割](https://www.dtstack.com/resources/1044?src=szsm)及[自定義 FileFormat ...
  • 電影臺詞中有不少令人難忘的好句子,很多時候,愛上一部電影不是因為鏡頭裡的帥哥靚女,不是因為故事情節的跌宕起伏,只是因為有那麼一句話,在主人公說出口的那一瞬間,擊中我們內心最柔軟的部分。本資料庫收錄經典電影臺詞大全,讓我們來欣賞每部電影的經典臺詞、經典對白。此外,還收錄了部分晚會、小品的經典臺詞。收錄 ...
  • 今天想聊一下分庫分表,因為對於快速增長的業務來說,這個是無法迴避的一環。之前我在做商城相關的SAAS系統,商品池是一個存儲瓶頸,商品池數量會基於租戶增長和運營變得指數級增長,短短幾個月就能漲到幾千萬的數據,而運營半年後就可能過億。而對於訂單這種數據,也會跟著業務的成長,也會變得愈發巨大。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...