中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

好程序員大數據學習路線分享HDFS學習總結

發布時間:2020-07-19 09:05:52 來源:網絡 閱讀:195 作者:wx5d42865f47214 欄目:大數據

好程序員大數據學習路線分享HDFS學習總結HDFS介紹

?

HDFS(Hadoop Distributed File System)是分布式文件系統,Hadoop項目的核心子項目.

?

設計思想:將大文件、大批量文件,分布式存放在大量服務器上,以便于采取分而治之的方式對海量數據進行運算分析。

?

HDFS的重要特性

?

1. HDFS中的文件在物理上是**分塊存儲**(block),塊的大小可以通過配置參數( dfs.blocksize)來規定,默認大小在hadoop2.x版本中是128M,老版本中是64M

2. HDFS文件系統會給客戶端提供一個**統一的抽象目錄樹**,客戶端通過路徑來訪問文件

3. **目錄結構及文件分塊信息(元數據)**的管理由namenode節點承擔

4. 文件的各個block的存儲管理由datanode節點承擔

5. HDFS是設計成適應一次寫入,多次讀出的場景,且不支持文件的修改

?

HDFS的優點

?

1. 高可靠性

?

???Hadoop按位存儲和處理數據的能力強

?

2. 高擴展性

?

???Hadoop是在可用的計算機集群中分配數據完成計算計算任務 ?

?

3. 高效性

?

???Hadoop能夠在節點之間動態的移動數據,并保證每個節點的動態平衡

?

4. 高容錯性

?

???Hadoop能夠自動保存的多個副本,并且能夠自動將失敗的任務重新分配

?

???

?

HDFS的缺點

?

1. 不適合低延遲訪問,不能快速訪問

?

???HDFS是單Master的,所有的對文件的請求都要經過它,當請求多時,肯定會有延時。它適合高吞吐率的場景,就是在某一時間內寫入大量的數據

?

2. 無法高效存儲大量小文件

?

???存儲大量小文件的話,它會占用 NameNode大量的內存來存儲文件、目錄和塊信息(元數據)

?

3. 不支持多用戶寫入即任意修改文件

?

???僅支持數據append(追加),不支持文件隨意修改

?

針對HDFS缺點可能的改進措施

?

1. Master設計,正在研發中的GFS II也要改為分布式多Master設計,還支持MasterFailover,而且Block大小改為1M,有意要調優處理小文件。(Alibaba DFS的設計,也是多Master設計,它把Metadata的映射存儲和管理分開了,由多個Metadata存儲節點和一個查詢Master節點組成。)

2. ?使用緩存或多master設計可以降低client的數據請求壓力,以減少延時。

3. 橫向擴展,一個Hadoop集群能管理的小文件有限,那就把幾個Hadoop集群拖在一個虛擬服務器后面,形成一個大的Hadoop集群。google也是這么干過的。

?

HDFSShell命令

?

| **-help** 輸出命令的手冊 ????????????????????????????????????|

| :----------------------------------------------------------- |

| **-ls** 顯示目錄信息 ??`hadoop fs -ls ??hdfs://hadoop-server01:9000/` ??ps:這些參數中,所有的hdfs**路徑都可以簡寫 ??-->`hadoop fs -ls /` ??等同于上一條命令的效果 |

| **-put** ?HDSF上傳文件 `hdfs dfs -put 本地文件路徑 HDFS文件系統路徑`?*<易錯:記 源路徑→目的路徑>* |

| **-get** ?HDFS文件系統中的文件下載回來 ?`hdfs dfs -get HDFS文件系統路徑 本地文件系統路徑` ?????*<易錯>* ?psHDFS有一個和putget類似的而方法 copyFromlocal 相當于put copyTolocal 相當于 get |

| **-cat** ?查看HDFS文件系統中的文件內容 ?`hdfs dfs -cat HDFS文件系統中文件的路徑` ?ps:不要查看非文件 |

| **-cp** ??HDFS文件系統中進行復制操作 ?`hdfs dfs -cp HDFS文件系統中的文件路徑 目標HDFS文件系統中的路徑` |

| **-mv** ?HDFS文件系統中的文件進行移動操作 ?`hdfs dfs -mv HDFS文件系統中的文件路徑 目標HDFS文件系統中的路徑` ps: 將源文件移動目標路徑,這個命令可允許有多個源路徑,此時目標路徑必須是一個文件夾(目錄)不允許不同的文件系統互相移動文件 |

| **-du** ??查看HDFS文件系統中文件的大小 ??`hdfs dfs -du HDFS文件系統中路徑中的一個文件` |

| **-mkdir** ??HDSF系統中創建文件夾 mkdir 創建文件夾 ?ps:遞歸創建+`-p` |

| **-rm** ??刪除HDFS文件系統中的目錄或文件 ?`hdfs dfs -rm HDFS文件系統路徑` ??`hdfs dfs -rm -r HDFS文件系統路徑` ?ps: 只能是單個文件 或 空目錄,若參數文件夾中有多個文件 加 -r |

| **-chmod** ??更改文件的權限 ?`hdfs dfs -chmod -R 權限值 HDFS文件系統路徑下的文件夾` ps: 所有每三位可以作為一個八進制處理 777是滿權限 rwx +R之后, 文件夾下的所有子文件和文件夾都會被修改 |

| **-appendTofile** ?追加一個文件到已經存在文件的末尾 `hadoop fs -appendTofile ./hello.txt /hello.txt` |

| **-getmerge** ?合并下載多個文件 `hadoop fs -getmerge /aaa/log.* ./log.sum` |

| **-df** ?統計文件系統的可用空間信息 `hadoop fs -df -h /` ????|

| ?????????????????????????????????????????????????????????????|

?

HDFS的工作機制

?

在了解工作機制之前,我們先來看看幾個重要角色:

?

?NameNode

?

1. master,它是一個管理者,維護著整個文件系統的文件目錄樹

2. 儲存數據庫(Block)映射信息,保存元數據信息包括:文件的所屬權,文件的權限,文件大小,時間(Block列表,Block偏移量),位置信息

3. 主要職責:處理客戶端讀寫請求,收集DateNode匯報的Block列表信息<*不會保存到本地系統中*>

?

**DateNode**

?

1. Slave,它是一個從節點,簡單理解就是NameNode的奴隸

2. 存儲用戶的文件塊數據

3. 主要職責:定期向NameNode匯報自身所持有的block信息(心跳機制),執行數據塊的讀/寫操作

?

?Secondary NameNode

?

1. 檢查點節點,表面上看SecondaryNameNodeNameNode的備份,實際上SecondaryNameNode的主要作用并不是備份

2. 主要職責:定期合并fsimageedit log ,并推送給NameNode

?

問題引入:一個已經 運行十年的集群,最近的fsimage(鏡像)是NameNode十年前格式化產生,這么多年的操作日志被edit log(日志)記錄已達幾百T。那么問題來了,如果我要重啟這個集群,這么大日志文件,必定要重啟很久,我們的時間并不充裕該 如何解決這個問題?

?

*<問題提取:只要NameNode不格式化或重新啟動,fsimage將保持原始狀態,edits會不斷的增加 >*

?

此時我們引入Secondary NameNode, 把PN中的edit?log?fsimageSNmerge,此時PN還會繼續產生新的日志,記錄合并和合并期間的操作,合并之后新fsimage會拷貝回PN,循環上面的操作.以此能保持edit log文件處于比較小的狀態,fsimage的時間點也不會太久遠

?

**fsimage是如何產生的呢?**

?

HDFS系統要開始運行的時候需要先對NameNode進行一次格式化,那么第一次格式化就會產生一個fsimage文件,但是這個文件是個空文件,NameNode啟動的時候會加載fsimage?然后執行edit log加載到內存中,然后立刻向磁盤中寫一個新的fsimage文件,這個fsimage就是一個最新的儲存信息

?

**緊急情況時,可以輔助恢復NameNode**

?

namenodesecondary namenode的工作目錄存儲結構完全相同,所以,當namenode故障退出需要重新恢復時,可以從secondary namenode的工作目錄中將fsimage拷貝到namenode的工作目錄,以恢復namenode的元數據

?

HDFS讀寫數據流程

?

HDFS讀數據流程

?

簡單版本

?

客戶端將要讀取的文件路徑發送給namenodenamenode獲取文件的元信息(主要是block的存放位置信息)返回給客戶端,客戶端根據返回的信息找到相應datanode逐個獲取文件的block并在客戶端本地進行數據追加合并從而獲得整個文件


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

商城县| 泸定县| 金湖县| 靖西县| 麦盖提县| 象州县| 河南省| 涿州市| 城固县| 西峡县| 兰坪| 岑溪市| 蒙城县| 蓬溪县| 紫云| 巴彦县| 大新县| 军事| 搜索| 吴桥县| 浦城县| 寿光市| 台北县| 民和| 成都市| 邵东县| 连江县| 康平县| 阳城县| 昌宁县| 崇仁县| 徐州市| 共和县| 蓝山县| 杭锦后旗| 萨迦县| 泰州市| 永川市| 偏关县| 利津县| 柘城县|