Secondary Namenode的Check point機制以及Namenode、Datanode工作機制說明

  • 目錄
    • 前言:
    • 1、NameNode的工作機制
    • 2、DataNode的工作機制
    • 3、Secondary Namenode的Check point機制

目錄

前言:

在說明checkpoint機制之前,先要了解下namenode、datanode的一些功能和職責。

1、NameNode的工作機制

問題場景:
1、集群啟動后,可以查看文件,但是上傳文件時報錯,打開web頁面可看到namenode正處于safemode狀態,怎么處理?(safemode是由于當前的namenode和大部分的datanode未建立完全的鏈接<即namenode不清楚有些數據的存儲位置造成的>)
2、Namenode服務器的磁盤故障導致namenode宕機,如何挽救集群及數據?(多種方法:1、早起設置集群時配置HA機制。2、在配置文件hdfs.site中將dfs.namenode.name.dir屬性配置多個目錄,就相當于對namenode數據做了多份備份,這樣做的好處是當其中一個目錄損壞了,也不會影響到Hadoop的元數據,特別是當其中一個目錄是NFS(網絡文件系統Network File System,NFS)之上,即使你這臺機器損壞了,元數據也得到保存。)
3、Namenode是否可以有多個(是,后面問題根據實際情況來具體分析)?namenode內存要配置多大?namenode跟集群數據存儲能力有關系嗎?
4、文件的blocksize究竟調大好還是調小好?
……
諸如此類問題的回答,都需要基于對namenode自身的工作原理的深刻理解。(目前的話個人件建議只需要了解以下的主要內容就行了,后續如果遇到問題再深入了解相關內容)

1. namenode的職責:
負責客戶端請求的響應;
元數據的管理(查詢,修改);
2. 對元數據管理:
namenode對數據的管理采用了三種存儲形式:
A、內存元數據(NameSystem):內存中有一份完整的元數據(內存meta data)。
B、磁盤元數據鏡像文件:磁盤有一個“準完整”的元數據鏡像(fsimage)文件(在namenode的工作目錄中)。
C、數據操作日志文件(可通過日志運算出元數據):用于銜接內存metadata和持久化元數據鏡像fsimage之間的操作日志(edits文件)。
注:當客戶端對hdfs中的文件進行新增或者修改操作,操作記錄首先被記入edits日志文件中,當客戶端操作成功后,相應的元數據會更新到內存meta.data中。

2、DataNode的工作機制

問題場景:
1、集群容量不夠,怎么擴容?
2、如果有一些datanode宕機,該怎么辦?
3、datanode明明已啟動,但是集群中的可用datanode列表中就是沒有,怎么辦?

以上這類問題的解答,有賴于對datanode工作機制的深刻理解(目前的話個人件建議只需要了解以下的主要內容就行了,后續如果遇到問題再深入了解相關內容)
1、Datanode工作職責:
存儲管理用戶的文件塊數據
定期向namenode匯報自身所持有的block信息(通過心跳信息上報)
(這點很重要,因為,當集群中發生某些block副本失效時,集群如何恢復block初始副本數量的問題)

3、Secondary Namenode的Check point機制

了解了以上知識,接下來再來理解元數據的checkpoint機制是怎么一回事的時候就很容易了。
什么叫checkpoint?
每隔一段時間,會由secondary namenode將namenode上積累的所有edits和一個最新的fsimage下載到本地,并加載到內存進行merge(這個過程稱為checkpoint)
checkpoint機制如下圖所示:
這里寫圖片描述

  1. 客戶端發送更新元數據的請求。
  2. namenode在內存中更新元數據。
  3. edits記錄更新的操作日志
  4. namenode滾動當前正在寫的edits。
  5. 將生成的fsimage和edtis下載到secender namenode.
  6. 將下載到secender namenode的fsimage和edtis放入內存進行合并。
  7. 合并更新后的元數據dump成新的image文件
  8. 然后secender namenode請求namenode是否需要checkpoint
  9. 如果需要就將edtis正在寫的那條日志進行滾動(即重復4步驟的操作)并將secender namenode生成的新的fsimage上傳到namenode并重命名為fsimage。

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

最后重點陳述下Secondary Namenode與Namenode的HA機制的區別,有許多人認為Secondary Namenode其實就是namenode一個HA機制,其實不是這樣的。Secondary Namenode相當于Namenode的一個熱備份(比如電腦的一鍵還原),只是定期將合并的image文件通過checkpoint機制傳給Namenode,并不具備HA機制中當namenode掛了之后直接接管namenode的能力。更深層來說,HA機制中備份的namenode是對namenode內存、edtis、image的實時的備份,而Secondary Namenode只是對image定時的備份。所以兩者不是同一個東西。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456716.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

表單驗證的初步實現和省市級聯

1.表單驗證的初步實現 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html xmlns"http://www.w3.org/1999/xhtml" lang"en"><head><meta http-equiv"Conte…

抓包軟件:Charles

修正&#xff1a;手機不必一定連接電腦分享的熱點&#xff0c;只需要手機和電腦在同一個局域網下就可以了&#xff0c;手機代理IP設置為電腦的IP。 之前寫過一篇通過Wireshark進行抓包&#xff0c;分析網絡連接的文章《通過WireShark抓取iOS聯網數據實例分析》&#xff1a;htt…

Hive的相關介紹

目錄前言&#xff1a;1、Hive簡介2、Hive架構3、Hive與Hadoop的關系4、Hive與傳統數據庫對比5、Hive的數據存儲總結&#xff1a; 目錄 前言&#xff1a; 為什么使用Hive 直接使用hadoop所面臨的問題 人員學習成本太高 項目周期要求太短 MapReduce實現復雜查詢邏輯開發難…

數據結構實驗之排序七:選課名單

數據結構實驗之排序七&#xff1a;選課名單 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 隨著學校規模的擴大&#xff0c;學生人數急劇增加&#xff0c;選課名單的輸出也成為一個繁重的任務&#xff0c;我校目前有在校生3萬多名&#xff0…

Java第五次作業--面向對象高級特性(抽象類和接口)

一、學習要點 認真看書并查閱相關資料&#xff0c;掌握以下內容&#xff1a; 掌握抽象類的設計掌握接口的設計理解簡單工廠設計模式理解抽象類和接口的區別掌握包裝類的應用掌握對象的比較方法和比較器的使用學習使用日期操作類學習匿名內部類的使用二、作業要求 發布一篇隨筆&…

關于國內廠商的國際版殺毒軟件

很多國內軟件公司的殺毒軟件都分為國內版和國際版&#xff0c;這二者有什么區別呢&#xff1f; 首先&#xff0c;這兩個的團隊是不一樣的。國際版的團隊大多收購&#xff0c;國內版為自研。例如百度殺毒的國際版就是原超級巡警的團隊做的&#xff0c;而國內版是自己另起爐灶。…

gulp教程之gulp-minify-css【gulp-clean-css】

原文&#xff1a;http://www.ydcss.com/archives/41 簡介&#xff1a; 使用gulp-minify-css壓縮css文件&#xff0c;減小文件大小&#xff0c;并給引用url添加版本號避免緩存。重要&#xff1a;gulp-minify-css已經被廢棄&#xff0c;請使用gulp-clean-css&#xff0c;用法一致…

大數據面試題總結(附答案)

文章目錄前言hadoop相關試題Hive相關試題Hbase相關試題Storm相關試題Spark相關試題Java基礎試題其他前言 最近由于要準備面試就開始提早看些面試、筆試題。以下是自己總結的一些經常出現、有價值的試題&#xff0c;包含hadoop、hive、hbase、storm、spark等。答案僅供參考&…

win7 IE11卸載后無法上網

今天某同事需要訪問一個銀行網站&#xff0c;必須使用IE8,我在win7中降級IE11,直接卸載了IE11和其語言包&#xff0c;發現IE8再也打不開網頁了&#xff0c;每次打開都提示保存html網頁。測試Google Chrome上網完全沒有問題。IE8的internet選項等任何工具菜單點擊均無反應&#…

關于django的模板

模板 問題 如何向請求者返回一個漂亮的頁面呢&#xff1f; 肯定需要用到html、css&#xff0c;如果想要更炫的效果還要加入js&#xff0c;問題來了&#xff0c;這么一堆字段串全都寫到視圖中&#xff0c;作為HttpResponse()的參數嗎&#xff1f;這樣定義就太麻煩了吧&#x…

Hbase簡介及常用命令相關知識總結

文章目錄目錄前言&#xff1a;1.Hbase簡介1.1、什么是Hbase1.2、與傳統數據庫的對比1.3、Hbase集群中的角色2、Hbase數據模型3、Hbase命令總結&#xff1a;目錄 前言&#xff1a; 對于Hbase來說&#xff0c;由于其是基于列的數據庫&#xff0c;所以比傳統的數據庫快許多&…

Django中模型類 屬性-學習筆記

定義屬性 Django根據屬性的類型確定以下信息&#xff1a; 當前選擇的數據庫支持字段的類型渲染管理表單時使用的默認html控件在管理站點最低限度的驗證 django會為表創建自動增長的主鍵列&#xff0c;每個模型只能有一個主鍵列&#xff0c;如果使用選項設置某屬性為主鍵列后d…

Angular Redux

Angular Redux 轉載于:https://www.cnblogs.com/skating/p/6185878.html

AtomicInteger相關類

在java6以后我們不但接觸到了Lock相關的鎖&#xff0c;也接觸到了很多更加樂觀的原子修改操作&#xff0c;也就是在修改時我們只需要保證它的那個瞬間是安全的即可&#xff0c;經過相應的包裝后可以再處理對象的并發修改&#xff0c;以及并發中的ABA問題&#xff0c;本文講述At…

Storm入門簡介

目錄前言&#xff1a;1、Storm簡介2、Storm與Hadoop的區別3、Storm核心組件4、Storm編程模型5、流式計算一般架構圖&#xff08;重要&#xff09;總結&#xff1a; 目錄 前言&#xff1a; 在介紹Storm之前&#xff0c;先介紹下離線計算。 離線計算&#xff1a;批量獲取數據…

項目完成

完成示例項目 現在還需要的代碼包括三個方面&#xff0c;三個方面順序不分先后。 1.定義視圖2.定義URLconf3.定義模板 定義視圖 編寫booktest/views.py文件如下&#xff1a; from django.shortcuts import render from booktest.models import BookInfo#首頁&#xff0c;展…

前端模板預編譯技術

什么是前端模板預編譯 前端模板預編譯通過預編譯技術讓前端模板突破瀏覽器限制&#xff0c;實現后端模板一樣的同步“文件”加載能力。它采用目錄來組織維護前端模板&#xff0c;從而讓前端模板實現工程化管理&#xff0c;最終保證前端模板在復雜單頁 web 應用下的可維護性。同…

Python如何生成windows可執行的exe文件

打包工具 pyinstaller 安裝pyinstaller 如果你的網絡穩定&#xff0c;通常直接使用下面的命令安裝即可&#xff1a; pip install pyinstaller 當然了&#xff0c;你也可以下載pyinstaller源碼包&#xff0c;然后進入包目錄執行下面的命令&#xff0c;同樣可以安裝&#xff…

招商銀行信用卡中心華泰證券暑期實習軟開筆試小結

白菜自動化小碩一枚&#xff0c;18屆&#xff0c;下學期就正式要找工作了&#xff0c;沒有實習經驗&#xff0c;感覺心慌慌。現在學校里已經開始各種提前招實習&#xff0c;內推了&#xff0c;so暑假想提前試試水&#xff0c;投一投暑期實習。 看到心水的單位就投一投&#xff…

理想的程序猿

出處 | http://guoze.me 最近看到的一篇不錯的文章&#xff0c;分享一下。 我算是靠坑蒙拐騙進了程序員的門&#xff0c;然后一路狂奔。26歲之前幾乎沒有任何寫代碼的經驗&#xff0c;研究生畢業卻意外選擇了一家不可能提供培訓的初創公司&#xff0c;在每日擔憂公司倒閉、害…