一、hdfs執行機制
概述:使用者的檔案會被切塊後儲存在多台datanode節點中,並且每個檔案在整個集群中存放多個副本,副本的數量可以通過修改配置自己設定。
hdfs:hadoop distributed file system,分布式檔案系統。
hdfs的機制:
hdfs集群中,有兩種節點,分別為namenode,datanode;
namenode它的作用時記錄元資料資訊,記錄塊資訊和對節點進行統一管理。
比如使用者要儲存乙個很大的檔案,hdfs系統會對這個檔案進行切分,然後儲存在多台namenode節點當中,那麼每個切的大小,儲存的路徑資訊,檔案的副本數等元資料資訊會儲存在元資料當中,由namenode進行管理和記錄。
datanode節點的作用是儲存資料,namenode將資料切塊後的分配給多個datanode節點,datanode對資料塊進行儲存,datanode它預設的塊大小在hadoop1.x的版本中是64m,而hadoop2.x之後的版本預設塊大小為128m。
hdfs還有乙個副本機制,它會預設給存在datanode當中的每塊檔案進行備份,預設的副本數量(republication)為3,這樣保證了資料的安全性。
大致如圖:
二、hdfs寫資料流程
1.客戶端向namenode請求上傳檔案資料hunter.txt(大小:200m);
2.namenode響應可以上傳檔案;
3.客戶端向namenode請求上傳第乙個block(0~128m
),請求返回datanode節點;
4.namenode返回三個datanode節點(副本數預設為3),採用這三個節點儲存資料;
5.客戶端向datanode請求建立乙個block的傳輸通道;
6.datanode應答通道建立成功;
7.客戶端向datanode傳輸資料,資料寫入到hdfs檔案系統當中。
三、hdfs讀資料流程
2.namenode返回目標檔案的元資料資訊(block所在的datanode);
3.客戶端向datanode請求讀取資料檔案;
4.datanode以fsdatainputstream流的形式向客戶端傳輸資料;
5.客戶端生成hunter.txt檔案。
四、namenode執行機制
首先去到主節點namenode的元資料資訊dfs目錄中,可以看到很多種檔案,如下:
edits:存放hdfs系統所有的更新操作的日誌檔案
fsimage:hdfs元資料的永久性的檢查點,其中包含了hdfs系統所有的目錄和檔案
seen_txid:最有乙個edits檔案的數字,即edits檔案個數
version:記錄了很多的id,如下:
namespaceid:每個節點的id,每個節點都不同
clusterid:乙個集群統一的id,是唯一的,乙個集群中所有節點的clusterid都相同
ctime:namenode儲存系統的使用時間的時間戳
storagetype:節點型別
blockpoolid:跨集群的全域性唯一
layoutversion:版本號
namenode的執行機制:
1.首先啟動集群,會啟動namenode和secondarynamenode,兩個節點的記憶體會載入日誌檔案和映象檔案(edits、fsimage檔案);
2.當客戶端對hdfs集群進行增刪改查等操作時,日誌檔案會更新滾動;
3.當eidts檔案數量達到預設閾值,或checkpoint時間到達預設觸發時間時;
(dfs.namenode.checkpoint.period :多久checkpoint一次、
dfs.namenode.checkpoint.check.period:多久檢查一次操作的次數、
dfs.namenode.checkpoint.txns:多少次操作後chechpoint一次)
4.namenode將edits檔案拷貝到secondarnamenode;
5.secondarnamenode的記憶體會載入拷貝的edits檔案並合併;
6.secondarnamenode會生成新的映象檔案fsimage.checkpoint;
7.secondarnamenode將新生產的映象檔案拷貝到namenode;
8.namenode將收到的映象檔案重新命名為fsimage;
9.namenode將新的fsimage映象檔案傳送到secondarnamenode
這樣兩個節點的元資料資訊就相同了!!!
五、datanode執行機制
1.hdfs集群啟動後,datanode現象namenode傳送註冊資訊;
2.namenode返回註冊成功;
3.每隔一段時間datanode會上傳所有的塊資訊到namenode;
(塊資訊:資料、資料長度、校驗和、時間戳等)
4.預設如果超過10分鐘namenode沒有收到datanode的資訊資訊,則認為節點不可用
Spring Cloud 各元件之間的關係
每個元件都不是平白無故的產生的,是為了解決某一特定的問題而存在。eureka和ribbon,是最基礎的元件,乙個註冊服務,乙個消費服務。hystrix為了優化ribbon 防止整個微服務架構因為某個服務節點的問題導致崩潰,是個保險絲的作用。dashboard給hystrix統計和展示用的,而且監控服...
linux核心各元件的功能介紹
各元件的主要功能介紹如下 1.程序管理 負責建立,結束程序,管理核心的活動,如軟體中斷 tasklet等,管理程序通訊,如訊息 message 管道 pipe 等,實現程序排程 schedule 程序排程是程序管理的重要任務,它處理所有活動的 等待被執行的和被阻塞 blocking 的程序排程,使所...
Mybatis各元件的生命週期
sqlsessionfactorybuilder是構建sqlsessionfactory的,構建完成生命週期結束 只是乙個構造器,生命週期存在於方法內部.每次訪問資料庫都需要通過sqlsessionfactory建立sqlsession,它的唯一作用就是建立sqlsession.生命週期存在於myb...