日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HDFS学习心得

發布時間:2025/3/17 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDFS学习心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

????????????????????????????????HDFS-Hadoop文件系統

第一節:HDFS的文件結構

學習HDFS首先得了解HDFS的文件結構,以及它是如何更新和保存數據的,要了解HDFS首先得知道HDFS主要由三個部分組成:namenode,datanode,secondaryNamenode.

這三者的關系按照我的理解就是主人,下人,小秘的關系。namenode是主人的角色,他是一個管理者,是一個決策者。datanode是一個下人,準確來說是一堆下人,他們的工作就是按照主人的吩咐干好本職工作,總是前赴后繼的角色。secondaryamenode就是一個小蜜,主人以一大堆下人之間以一種特定的合同文書來維持,小蜜的人物就是在一定時間或者文書積累到一定量的時候,幫主人整理這些文書,保持最簡介高效。

1.1 namenode

namenode作為hdfs的頭腦,他的主要工作是接受客戶端請求,合理的讀取和劃分數據并存儲;而namenode數據存放也是分為兩個部分:內存,硬盤中。

內存的數據主要是一些元數據信息,元數據信息就像是一個索引信息,通過索引可以輕松的找到需求的數據的位置包括副本位置;元數據的存在主要是為了便于讀取hdfs中的數據。

硬盤中的數據比較多,最新格式化的namenode會生成以下文件目錄結構:${dfs.name.dir}/current/VERSION

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? /edits

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? /fsimage

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? /fstime

這四個文件以及文件夾。VERSION文件里面記載了一些namenode的基礎信息,而其中有一個namespaceID,這是這個namenode的唯一標示,而這個表示需要所有的datanode的ID保持一致,正常運行的hdfs,namenode和datanode的id是完全相同的。

那么剩下的這三個文件:

edits是hdfs的日志文件,這里記錄著namenode上的一些讀寫操作。這是namenode儲存的第一個重要的信息,它記錄了近期的所有操作記錄以及操作狀態和操作內容;edits十分重要,他是一個做namenode數據同步的重要文件。

fsimage是namenode的存在內存中的元數據在硬盤上的鏡像文件,但鏡像文件并不是與matadata(元數據)時時同步的,在達到一定條件fsimage會執行更新操作來保持和內存中的元數據信息保持一致,而執行這個鏡像同步操作的憑據就是edits。

fstime,鏡像生成或者修改時間,不許多講。

namenode主要涉及到的就是讀和寫操作,其中都比較簡單(相對),寫則會有一個過程

namenode的寫操作,首先客戶端先申請寫操作,namenode會去找適合存放數據和數據副本的內存位置,然后將這條具體的數據存放的信息寫入日志文件,然后將具體的信息交給客戶端,客戶端將數據交給datanode按照namenode的規則來存放數據,當寫入成功,但成功代碼尚未返回給客戶端之前刷新和同步日志文件,其實就是加了一個狀態位。然后namenode在客戶端返回成功后生成metadata(元數據)以及生成一個fsimage。

而在那門哦的工作中,secondaryname作為一個附庸,其實它也一直在為工作,他的工作就是解決matadata和fsimage之間的不和諧(不一致),這里為神馬會使用到secondarynamenode來幫助namenode來管理namenode,原因是因為namenode不斷的寫,會產生大量的日志,若namenode重起,那么加載這些日志文件就會消耗大量的時間,而采用secondarynamenode處理過edits和faimage后,edits的大小始終保持一個比較小的水平,那么naemnode就算重啟也可以快速啟動而且保持前面的狀態。

關于secondarynamenode如何更新fsimage以及edits

(1)SENode首先通過HTTP獲取namenode中的fsimage和edits。

(2)SENode讀取fsimage到內存中,然后執行edits中的所有操作,并創建一個新的fsimage文件。

(3)SENode通過HTTP方式將新的fsimage發送到namenode中

(4)namenode中新的fsimage會替代舊的fsimage然后edits文件清空并且更新fstime。

1.2 secondary NameNode

secondaryNamenode的文件目錄與那門哦的完全一樣,只是它的配置文件的根目錄可能會不同,根據hdfs-.xml中的配置來決定。

secondarynamenode在幫namenode時也會在自己的本地保存最新的namenode的edits后人fsimage文件,他的作用就是幫助namenode以及當namenode掛掉的時候,幫助恢復namenode配置。

(1)直接將全部本地文件(secondarynamenode中的數據:edits,fsimage,fstime)全部復制到新的namenode。

(2)將secongarynamenode作為新的namenode來使用。


轉載于:https://my.oschina.net/cavaliersyb/blog/471759

總結

以上是生活随笔為你收集整理的HDFS学习心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。