HDFS的相關面試題總結

2021-07-12 01:28:44 字數 2107 閱讀 8509

hadoop 的生態系統核心組成部分如下圖所示:

hdfs架構包括: hdfs client、namenode、datanode和secondary namenode

hdfs讀取資料流程圖:

1、首先呼叫filesystem物件的open方法,其實獲取的是乙個distributedfilesystem的例項。

2、distributedfilesystem通過rpc(遠端過程呼叫)獲得檔案的第一批block的locations,同一block按照重複數會返回多個locations,這些locations按照hadoop拓撲結構排序,距離客戶端近的排在前面。

3、前兩步會返回乙個fsdatainputstream物件,該物件會被封裝成 dfsinputstream物件,dfsinputstream可以方便的管理datanode和namenode資料流。客戶端呼叫read方 法,dfsinputstream就會找出離客戶端最近的datanode並連線datanode。

4、資料從datanode源源不斷的流向客戶端。

5、如果第乙個block塊的資料讀完了,就會關閉指向第乙個block塊的datanode連線,接著讀取下乙個block塊。這些操作對客戶端來說是透明的,從客戶端的角度來看只是讀乙個持續不斷的流。

6、如果第一批block都讀完了,dfsinputstream就會去namenode拿下一批blocks的location,然後繼續讀,如果所有的block塊都讀完,這時就會關閉掉所有的流。

hdfs寫資料流程:

1.客戶端通過呼叫 distributedfilesystem 的create方法,建立乙個新的檔案。

2.distributedfilesystem 通過 rpc(遠端過程呼叫)呼叫 namenode,去建立乙個沒有blocks關聯的新檔案。建立前,namenode 會做各種校驗,比如檔案是否存在,客戶端有無許可權去建立等。如果校驗通過,namenode 就會記錄下新檔案,否則就會丟擲io異常。

3.前兩步結束後會返回 fsdataoutputstream 的物件,和讀檔案的時候相似,fsdataoutputstream 被封裝成 dfsoutputstream,dfsoutputstream 可以協調 namenode和 datanode。客戶端開始寫資料到dfsoutputstream,dfsoutputstream會把資料切成乙個個小packet,然後排成佇列 data queue。

4.datastreamer 會去處理接受 data queue,它先問詢 namenode 這個新的 block 最適合儲存的在哪幾個datanode裡,比如重複數是3,那麼就找到3個最適合的 datanode,把它們排成乙個 pipeline。datastreamer 把 packet 按佇列輸出到管道的第乙個 datanode 中,第乙個 datanode又把 packet 輸出到第二個 datanode 中,以此類推。

5.dfsoutputstream 還有乙個佇列叫 ack queue,也是由 packet 組成,等待datanode的收到響應,當pipeline中的所有datanode都表示已經收到的時候,這時akc queue才會把對應的packet包移除掉。

6.客戶端完成寫資料後,呼叫close方法關閉寫入流。

7.datastreamer 把剩餘的包都刷到 pipeline 裡,然後等待 ack 資訊,收到最後乙個 ack 後,通知 datanode 把檔案標示為已完成。

備註:使用namenode federation 能夠解決namenode記憶體擴充套件問題

namenode ha 架構如下:

linux相關面試題總結!

a.在註冊該域時指定 b.將hostmaster foo.com放入soa記錄的第二塊空間內 c.在zone檔案中建立mail to hostmaster foo.com的記錄 d.將hostmaster.foo.com放入soa記錄的第二塊空間內 366 假設在乙個公司的內部有一台web伺服器經常...

Hadoop總結 相關面試題

1.1 簡要描述如何安裝配置apache的乙個開源hadoop 使用root賬戶登入 修改ip 修改host主機 配置ssh免密登入關閉防火牆 1 5可以簡單說成準備一台伺服器 安裝jdk解壓hadoop安裝包配置hadoop核心檔案 hadoop env.sh,core site.xml,mapr...

面試題總結 Linux Shell相關

序號命令 命令解釋 1top 檢視記憶體 2df h 檢視磁碟儲存情況 3iotop 檢視磁碟io讀寫 4iotop o 直接檢視比較高的磁碟讀寫程式 5netstat tunlp grep 埠號 檢視埠占用情況 6uptime 檢視報告系統執行時長及平均負載 7ps aux 檢視程序 序號工具注釋...