09 大資料之Hadoop(第四部 HDFS)
Hadoop之HDFS
HDFS作用及定義
隨著資料量越來越大,單臺伺服器已經滿足不了大量資料的儲存,多臺主機管理又極其麻煩,所以出現了分散式檔案系統:如Hadoop的HDFS,HDFS通過目錄樹結構來定位檔案,其次,他可以將大量伺服器組成一個叢集用來儲存資料,對使用者來說就像管理一臺主機簡便,並且還有高吞吐量的優勢.HDFS適合一次寫入,多次讀出,但是檔案只能追加而不能修改,適合做資料分析等.
HDFS優點
- 容錯性
HDFS檔案可以儲存多個副本,當叢集中某一臺或者多臺節點當機,叢集中剩餘的資料會再次自動同步並完善缺少的副本,不會丟失資料. - 適合處理大資料量
能夠處理GB,TB甚至EB級別資料.
能夠處理百萬規模以上的檔案數量 - 可執行在廉價的伺服器上,並且十分穩定.
缺點
- 不適合低延遲資料訪問,如毫秒級的儲存查詢資料,是做不到的.
- 無法高效的對大量小檔案進行儲存
原因:- HDFS的NameNode節點只有一臺,而且他的記憶體是有限的,NameNode會儲存每一個檔案的後設資料索引資訊,類似於Linux的INode,每一個檔案在NameNode中至少佔用150B的空間,大量小檔案會佔用極多的NameNode記憶體,而NameNode記憶體一旦過多,Linux系統也就無法執行了,系統為了自保,會將佔用大記憶體的程式結束掉,NameNode死掉,叢集也就無法使用了.
- 小檔案儲存的定址時間會超出儲存時間,他違反了HDFS的設計目標
- 不支援併發寫入檔案隨即修改.一個檔案只允許一個執行緒操作,不允許多個.
- 僅支援append(追加),不支援檔案的修改.
HDFS組成架構
NameNode
他是HDFS的管理者,負責管理了HDFS名稱空間,配置副本,管理資料庫對映,客戶端讀寫請求等.
DataNode
資料儲存節點
執行資料塊的讀寫操作
client
檔案切片:
檔案上傳HDFS的時候,client將檔案切分為一個個的block,然後進行上傳.預設block大小是128M
與NameNode互動,獲取檔案的位置資訊
與DataNode進行互動,讀或者寫入資料
提供一些命令來管理,如格式化,查詢或者刪除檔案
SecondaryNameNode
輔助NameNode,分擔其工作量,如定期合併simage 和Edits,並推送給NameNode
緊急情況,可通過其儲存的快照資料恢復NameNode,點選這裡檢視實際生產環境故障恢復案例
HDFS 塊的大小
-
HDFS檔案在物理上預設分塊儲存,塊的大小可以通過引數
dfs.blocksize
來設定,2.x版本預設大小是128M,老版本是64M. -
HDFS檔案儲存實際佔用磁碟空間的大小是檔案的大小,也就是比如塊的大小是128M,檔案只有10M,在磁碟上佔用空間佔用空間也是10M.128M塊是為了減少磁碟定址時間.
-
如果定址時間為10ms,而定址時間為傳輸時間的1%為最佳,那麼傳輸時間等於 10ms * 100 = 1S.
目前磁碟傳輸速率大約在100M/S左右,HDFS設定塊的大小也就是128M. -
HDFS塊設定過小會增加磁碟定址時間,而過大會導致從磁碟傳輸資料的時間會明顯大於定位這個塊開始位置所需的時間,程式再次還是會非常緩慢.
總結: 塊的大小取決於磁碟傳輸速率,如果是固態盤則不需要考慮這麼多,因為固態盤沒有磁軌不存在定址時間.
相關文章
- Hadoop系列之HDFS 資料塊Hadoop
- 大資料時代之hadoop(四):hadoop 分散式檔案系統(HDFS)大資料Hadoop分散式
- 【大資料】【hadoop】檢視hdfs檔案命令大資料Hadoop
- Hadoop大資料實戰系列文章之HDFS檔案系統Hadoop大資料
- 小白學習大資料測試之hadoop hdfs和MapReduce小實戰大資料Hadoop
- 大資料2-Hadoop偽分散式+ZK+HDFS大資料Hadoop分散式
- 關於Hadoop HDFS資料均衡。Hadoop
- Hadoop面試題之HDFSHadoop面試題
- Hadoop原理之——HDFS原理Hadoop
- hadoop之 HDFS-Hadoop存檔Hadoop
- 23 大資料之hive(第四部 hive基礎)大資料Hive
- 大資料時代之hadoop(一):hadoop安裝大資料Hadoop
- 大資料時代之hadoop(三):hadoop資料流(生命週期)大資料Hadoop
- 大資料測試之hadoop初探大資料Hadoop
- 從 RAID 到 Hadoop Hdfs 『大資料儲存的進化史』AIHadoop大資料
- 大資料時代之hadoop(二):hadoop指令碼解析大資料Hadoop指令碼
- IT十年-大資料系列講解之HDFS(二)大資料
- 大資料學習之Hadoop如何高效處理大資料大資料Hadoop
- Hadoop 基礎之 HDFS 入門Hadoop
- hadoop之 HDFS fs 命令總結Hadoop
- hadoop HDFS之常用命令Hadoop
- 大資料小白系列——HDFS(4)大資料
- 大資料小白系列——HDFS(2)大資料
- 大資料小白系列——HDFS(1)大資料
- 大資料小白系列——HDFS(3)大資料
- Hadoop–HDFSHadoop
- 大資料之 Hadoop學習筆記大資料Hadoop筆記
- Hadoop大資料平臺之HBase部署Hadoop大資料
- Hadoop大資料平臺之Kafka部署Hadoop大資料Kafka
- 大資料hadoop資料大資料Hadoop
- 大資料專案實踐(一)——之HDFS叢集配置大資料
- Hadoop核心之HDFS 架構設計Hadoop架構
- ORACLE連線HADOOP(3) - OLH載入HDFS資料OracleHadoop
- 大資料3-Flume收集資料+落地HDFS大資料
- 大資料hadoop入門之hadoop家族產品詳解大資料Hadoop
- Hadoop大資料實戰系列文章之安裝HadoopHadoop大資料
- hadoop之上傳資料到hdfs模式Hadoop模式
- 大資料之Hadoop偽分散式的搭建大資料Hadoop分散式