分散式檔案儲存hdfs簡介及常用命令
1、hdfs簡介
1.1 什麼是HDFS?
HDFS(Hadoop Distributed File System)是hadoop生態系統的一個重要組成部分,是hadoop中的的儲存元件,是最基礎的一部分,MapReduce等計算模型都要依賴於儲存在HDFS中的資料。HDFS是一個分散式檔案系統,以流式資料訪問模式儲存超大檔案,將資料分塊儲存到一個商業硬體叢集內的不同機器上。
1.2 HDFS的設計目標
- 儲存超大檔案 HDFS適合儲存大檔案,單個檔案大小通常在百MB以上 HDFS適合儲存海量檔案,總儲存量可達PB,EB級
- 流式資料訪問 為資料批處理而設計,關注資料訪問的高吞吐量
- 硬體容錯 基於普通機器搭建,硬體錯誤是常態而不是異常,因此錯誤檢測和快速、自 動的恢復是HDFS最核心的架構目標
- 簡單的一致性模型 一次寫入,多次讀取 一個檔案經過建立、寫入和關閉之後就不需要改變
- 不支援低時間延遲的資料訪問 hdfs關心的是高資料吞吐量,不適合那些要求低時間延遲資料訪問的應用。
- 本地計算 將計算移動到資料附近
1.3 HDFS的構成
資料塊
- 檔案以塊為單位進行切分儲存,塊通常設定的比較大(最小6M,預設 128M)
- 塊越大,定址越快,讀取效率越高,但同時由於MapReduce任務也是以 塊為最小單位來處理,所以太大的塊不利於於對資料的並行處理
- 一個檔案至少佔用一個塊(邏輯概念)
- 冗餘備份 資料塊非常適合用於資料備份,進而可以提供資料容錯能力和提高可用性。每個塊可以有多個備份(預設為三個),分別儲存到相互獨立的機器上去,這樣就可以保證單點故障不會導致資料丟失。
Namenode
- namenode 負責維護整個檔案系統的資訊,包括:整個檔案樹,檔案的塊 分佈資訊,檔案系統的後設資料,資料複製策略等
Datanode
- datanode 儲存檔案內容,負責檔案實際的讀寫操作,保持與namenode的 通訊,同步檔案塊資訊
Secondary NameNode
- Secondary NameNode是合併NameNode的edit logs到fsimage檔案中。Secondary NameNode的整個目的是在HDFS中提供一個檢查點。它只是NameNode的一個助手節點,來幫助NameNode更好的工作。它不是要取代掉NameNode也不是NameNode的備份。這也是它在社群內被認為是檢查點節點的原因。
1.4 HDFS支援的儲存檔案格式
HDFS 支援任意檔案格式
常用的格式有如下幾種:
1、sequencefile:k-v格式,比源文字格式佔用磁碟更多
2、textfile:行式文字檔案,生產中用得較多
3、rcfile:行列混合儲存
4、orc:列式儲存,生產用的較多
5、parquet:列式儲存,生產中用得較多
6、avro:幾乎不用,略
7、jsonfile:json格式,幾乎不用,略
8、inputformat:幾乎不用,略
大資料儲存資料,99%以上的場景都是使用的是列式儲存
1.5 HDFS小檔案問題及解決方案
- 問題描述 大量大小小於塊大小的檔案
- 背景:每個檔案的後設資料物件約佔150byte,所以如果有1千萬個小檔案, 每個檔案佔用一個block,則NameNode大約需要2G空間。如果儲存1億 個檔案,則NameNode需要20G空間;資料以塊為單位進行處理。
- 影響:佔用資源,降低處理效率
- 解決方案:
•從源頭減少小檔案
•使用archive打包
•使用其他儲存方式,如Hbase,ES等
2、hdfs常用命令
# 檢視目錄下的檔案及目錄列表
hdfs dfs -ls /
# 建立目錄
hdfs dfs -mkdir -p /user/che/1021001
# 拷貝檔案到hdfs檔案系統中的
hdfs dfs -copyFromLocal /data/test.txt /user/che/1021001/
# 檢視檔案內容
hdfs dfs -tail /user/che/1021001/test.txt
hdfs dfs -cat /user/che/1021001/test.txt
# 刪除檔案
hdfs dfs -rm /user/che/1021001/test.txt
# 刪除資料夾
hdfs dfs -rm -r /user/che
相關文章
- HDFS分散式儲存分散式
- 必須掌握的分散式檔案儲存系統—HDFS分散式
- Ceph分散式儲存-原理介紹及簡單部署分散式
- FastDFS分散式儲存原理簡介AST分散式
- Hadoop 三劍客之 —— 分散式檔案儲存系統 HDFSHadoop分散式
- 分散式檔案系統HDFS,大資料儲存實戰(一)分散式大資料
- HDFS分散式儲存的意義及技術解析分散式
- 什麼是HDFS 分散式儲存分散式
- 06、hdfs檔案儲存
- HDFS分散式檔案系統分散式
- 分散式檔案系統-HDFS分散式
- python如何分散式儲存檔案?Python分散式
- Hadoop HDFS分散式檔案系統 常用命令彙總Hadoop分散式
- CEPH分散式儲存搭建(物件、塊、檔案三大儲存)分散式物件
- Hadoop HDFS 3.3.1分散式儲存搭建Hadoop分散式
- 雲端儲存及其分散式檔案系統分散式
- 分散式檔案儲存FastDFS(三)FastDFS配置分散式AST
- 分散式檔案儲存FastDFS(七)FastDFS配置檔案詳解分散式AST
- 【儲存】GPFS簡介及搭建
- 大資料檔案儲存系統HDFS大資料
- 分散式檔案儲存庫MinIO可還行?分散式
- Zookeeper簡介及分散式概念分散式
- 大資料 | 分散式檔案系統 HDFS大資料分散式
- 如何獲取HDFS上檔案的儲存位置
- HDFS分散式儲存中NameNode 和DataNode 有什麼區別?分散式
- Hadoop 系列(一)—— 分散式檔案系統 HDFSHadoop分散式
- 理解Hadoop分散式檔案系統HDFS(二)Hadoop分散式
- Redis 分散式儲存Redis分散式
- 分散式儲存概述分散式
- Hadoop學習(一)——HDFS分散式檔案系統Hadoop分散式
- Hadoop基礎(一):分散式檔案系統HDFSHadoop分散式
- 大量小檔案不適合儲存於HDFS的原因
- Hdfs儲存策略
- 分散式檔案儲存系統 fastdfs 的 Composer 包釋出!分散式AST
- MySQL入門系列:儲存程式(二)之儲存函式簡介MySql儲存函式
- 24位BMP檔案儲存介紹
- Azure 儲存簡介
- 儲存引擎簡介儲存引擎