核心
- HDFS分散式檔案系統:儲存是大資料技術的基礎
- MapReduce程式設計模型:分散式計算是大資料應用的解決方案
HDFS
概念:
- 資料塊: 抽象塊而非整個檔案作為儲存單元;一般設定為64BM,備份X3
- NameNode: 管理檔案系統的名稱空間,廚房檔案後設資料;維護著檔案系統的所有檔案和目錄,檔案與數塊的對映;記錄每個檔案中各個塊所在資料節點的資訊
- DataNode: 儲存並檢索資料塊;向NameNode更新所儲存塊的列表
特點
- 普通的成百上千的機器
- 按TB甚至Pb為單位的大量的資料
- 簡單編輯的檔案獲取
優點
- 適合大檔案儲存,支援TB、PB級別的數儲存,並有副本策略
- 可以構建在廉價的機器上,並有一定的容錯和恢復機制
- 支援流式資料訪問,一次寫入,多次讀取最高效
缺點
- 不合適小量小檔案儲存
- 不適合併發寫入,不支援檔案隨機修改
- 不支援隨機讀低延時的訪問方式
寫流程
- 客戶端向NameNode發起寫請求
- 分塊寫入DataNode節點,DataNode自動完成副本備份
- DataNode向NameNode彙報儲存完成,NameNode通知客戶端
讀流程
- 客戶端向NameNode發起讀資料請求
- NameNode找出距離最近的DataNode節點資訊
- 客戶端從DataNode分塊下載檔案
簡單使用
- shell指令碼
常見HDFS Shell命令
- 類linux命令:ls、cat、mkdir、rm、chmod、chown等
- HDFS檔案互動:copyFromLocal、copyToLocal、get、put等
幫助命令:./hdfs dfs -help
複製程式碼