首先,客戶端向namenode請求上傳檔案。namenode檢測相應的檔案是否存在,若不存在namenode則向client響應可以上傳。
client按照128m切分檔案,切分完檔案之後,client請求namenode第乙個block上傳的位置,namenode返回block應上傳的相應的block位置,clent先向第乙個dn1上傳第乙個block,dn1接收完資料之後,則與dn2建立通道,向其傳送資料,dn2則向dn3傳輸檔案。dn1、dn2以及dn3是逐級應答客戶端。
接下來的block都是如此迴圈。
所有block塊上傳完之後,客戶端向namenode響應已經傳輸完成。
client向namenode請求讀取檔案,namenode返回檔案block對應的datenode伺服器位址。
client拿到相應的datenode位址,則根據就近原則選擇最近的乙個datenode伺服器建立輸入流,然後datenode伺服器向輸入流寫入資料,並以packet校驗。
client接收資料之後先放入本地快取中,然後寫入檔案。
如此迴圈。
注意:所有答案非官方語句,皆為個人理解,不涉及底層。每篇一言:坐而論道,起而行之。
大資料面試常問問題 HANameNode
通過zkfczkfc定期向它所監控的namenode傳送健康探測命令。如果namenode宕機沒有傳送心跳,zkfc就認為它不健康,就會在zk中給其標記上乙個不健康的標記。zkfc同時也會給健康的namenode建立乙個會話,假設這個namenode同時還是active狀態,就會給其在zk中建立乙個...
Mysql面試常問問題
資料庫基礎知識 1 為什麼要使用資料庫 2 什麼是sql?3 什麼是mysql?4 資料庫三大正規化是什麼 5 mysql有關許可權的表都有哪幾個 6 mysql的binlog有有幾種錄入格式?分別有什麼區別?資料型別 1 mysql有哪些資料型別 引擎1 mysql儲存引擎myisam與innod...
php 面試常問問題
1.看看簡歷,會問一些過去做的專案的使用者量 pv 吞吐量 相關難點和解決方法等 2.資料庫設計經驗,為什麼進行分表?分庫?一般多少資料量開始分表?分庫?分庫分表的目的?什麼是資料庫垂直拆分?水平拆分?分割槽等等?可以舉例說明 3.資料庫優化有哪些?分別需要注意什麼?4.web開發方面會遇到哪些快取...