Hadoop大数据分布式文件系统hdfs的工作机制
HDFS集群分為兩大角色:NameNode、DataNode
NameNode負責管理整個文件系統的元數據
DataNode 負責管理用戶的文件數據塊
namenode工作機制
namenode職責:
響應客戶端請求
維護目錄樹
管理元數據(查詢,修改)
---- hdfs元數據是怎么存儲的?
A、內存中有一份完整的元數據(特定數據結構)
B、磁盤有一個“準完整”的元數據的鏡像文件
C、當客戶端對hdfs中的文件進行新增或者修改操作,首先會在edits文件中記錄操作日志,當客戶端操作成功后,相應的元數據會更新到內存中;
每隔一段時間,會由secondary namenode將namenode上積累的所有edits和一個最新的fsimage下載到本地,并加載到內存進行merge(這個過程稱為checkpoint)
D、checkpoint操作的觸發條件配置參數:
dfs.namenode.checkpoint.check.period=60 #檢查觸發條件是否滿足的頻率,60秒 dfs.namenode.checkpoint.dir=file://${hadoop.tmp.dir}/dfs/namesecondary #以上兩個參數做checkpoint操作時,secondary namenode的本地工作目錄 dfs.namenode.checkpoint.edits.dir=${dfs.namenode.checkpoint.dir}dfs.namenode.checkpoint.max-retries=3 #最大重試次數 dfs.namenode.checkpoint.period=3600 #兩次checkpoint之間的時間間隔3600秒 dfs.namenode.checkpoint.txns=1000000 #兩次checkpoint之間最大的操作記錄E、namenode和secondary namenode的工作目錄存儲結構完全相同,所以,當namenode故障退出需要重新恢復時,可以從secondary namenode的工作目錄中將fsimage拷貝到namenode的工作目錄,以恢復namenode的元數據
F、可以通過hdfs的一個工具來查看edits中的信息
bin/hdfs oev -i edits -o edits.xml
datanode的工作機制
Datanode工作職責:
存儲管理用戶的文件塊數據
定期向namenode匯報自身所持有的block信息(通過心跳信息上報)
上傳一個文件,觀察文件的block具體的物理存放情況
在每一臺datanode機器上的這個目錄:
/home/hadoop/app/hadoop-2.4.1/tmp/dfs/data/current/BP-193442119-192.168.2.120-1432457733977/current/finalized
另外
- HDFS的其他訪問方式:
HDFS文件系統可以通過標準的hdfs shell / rest api / java api來操作,還可以利用fuse這種工具將hdfs掛載為一個unix標準文件系統,就可以使用標準的linux文件操作方式來操作hdfs文件系統
HDFS還可以掛載為一個NFS系統 - FileUtil工具類
- hdfs的trash配置
Hdfs存在回收站機制,進入回收站的文件可以保存一段時間,過期后再清除
參數配置:
- 通配符及過濾器選擇文件
- Namenode的安全模式
(1)當nameonde發現文件block丟失的數量達到一個配置的門限時,就會進入安全模式,它在這個模式下等待datanode向它匯報block信息。
(2)在安全模式下,namenode可以提供元數據查詢的功能,但是不能修改;
可以手動管理namenode的安全模式:
hdfs dfsadmin -safemode <enter | leave | get | wait]>
總結
以上是生活随笔為你收集整理的Hadoop大数据分布式文件系统hdfs的工作机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop大数据分布式文件系统hdfs
- 下一篇: hadoop大数据--深入讲解hdfs源