hadoop之 Hadoop2.2.0中HDFS的高可用性實現原理

 在Hadoop2.0.0之前,NameNode(NN)在HDFS集群中存在單點故障(single point of failure),每一個集群中存在一個NameNode,如果NN所在的機器出現了故障,那么將導致整個集群無法利用,直到NN重啟或者在另一臺主機上啟動NN守護線程。
  主要在兩方面影響了HDFS的可用性:
  (1)、在不可預測的情況下,如果NN所在的機器崩潰了,整個集群將無法利用,直到NN被重新啟動;
  (2)、在可預知的情況下,比如NN所在的機器硬件或者軟件需要升級,將導致集群宕機。
  HDFS的高可用性將通過在同一個集群中運行兩個NN(active NN & standby NN)來解決上面兩個問題,這種方案允許在機器破潰或者機器維護快速地啟用一個新的NN來恢復故障。
  在典型的HA集群中,通常有兩臺不同的機器充當NN。在任何時間,只有一臺機器處于Active狀態;另一臺機器是處于Standby狀態。Active NN負責集群中所有客戶端的操作;而Standby NN主要用于備用,它主要維持足夠的狀態,如果必要,可以提供快速的故障恢復。
  為了讓Standby NN的狀態和Active NN保持同步,即元數據保持一致,它們都將會和JournalNodes守護進程通信。當Active NN執行任何有關命名空間的修改,它需要持久化到一半以上的JournalNodes上(通過edits log持久化存儲),而Standby NN負責觀察edits log的變化,它能夠讀取從JNs中讀取edits信息,并更新其內部的命名空間。一旦Active NN出現故障,Standby NN將會保證從JNs中讀出了全部的Edits,然后切換成Active狀態。Standby NN讀取全部的edits可確保發生故障轉移之前,是和Active NN擁有完全同步的命名空間狀態。
  為了提供快速的故障恢復,Standby NN也需要保存集群中各個文件塊的存儲位置。為了實現這個,集群中所有的Database將配置好Active NN和Standby NN的位置,并向它們發送塊文件所在的位置及心跳,如下圖所示:

?

?

  在任何時候,集群中只有一個NN處于Active 狀態是極其重要的。否則,在兩個Active NN的狀態下NameSpace狀態將會出現分歧,這將會導致數據的丟失及其它不正確的結果。為了保證這種情況不會發生,在任何時間,JNs只允許一個NN充當writer。在故障恢復期間,將要變成Active 狀態的NN將取得writer的角色,并阻止另外一個NN繼續處于Active狀態。
  為了部署HA集群,你需要準備以下事項:
  (1)、NameNode machines:運行Active NN和Standby NN的機器需要相同的硬件配置;
  (2)、JournalNode machines:也就是運行JN的機器。JN守護進程相對來說比較輕量,所以這些守護進程可以可其他守護線程(比如NN,YARN ResourceManager)運行在同一臺機器上。在一個集群中,最少要運行3個JN守護進程,這將使得系統有一定的容錯能力。當然,你也可以運行3個以上的JN,但是為了增加系統的容錯能力,你應該運行奇數個JN(3、5、7等),當運行N個JN,系統將最多容忍(N-1)/2個JN崩潰。
  在HA集群中,Standby NN也執行namespace狀態的checkpoints,所以不必要運行Secondary NN、CheckpointNode和BackupNode;事實上,運行這些守護進程是錯誤的。

source :?https://www.iteblog.com/archives/833.html#comments

轉載于:https://www.cnblogs.com/andy6/p/7487208.html

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

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

相關文章

3D坦克大戰游戲源碼

3D坦克大戰游戲源碼,該游戲是基于xcode 4.3,ios sdk 5.1開發。在xcode4.3.3上完美無報錯。兼容ios4.3-ios6.0 ,一款ios平臺上難得的3D坦克大戰游戲源碼,有20張不同的作戰地圖。通過左下角方向鍵和重力感應來控制坦克運行&#xff…

mongodb php 擴展 linux,CentOS Linux 安裝PHP的MongoDB擴展

一、下載、編譯以及安裝MongoDB的php擴展cd /data0/softwaregit clone git://github.com/mongodb/mongo-php-drivercd mongo-php-drivergit submodule initgit submodule update/usr/local/webserver/php/bin/phpize./configure --with-php-config/usr/local/webserver/php/bin…

The hierarchy of the type UserOperateLogAdvisor is inconsistent

加入 aopalliance-1.0.jar轉載于:https://www.cnblogs.com/toSeeMyDream/p/4375962.html

Acrobat DC發布一周年 激活移動時代文件處理革命

“我們很高興地看到,Adobe Acrobat DC推出一年以來,在包括AEC在內的多個行業獲得了廣泛的應用,受到了普遍的歡迎和高度的認可。”Adobe高級渠道銷售經理馬驥在研討會上指出,“整合了多種智能工具的Adobe Acrobat DC大大推動了企業…

介紹一個輕量級iOS安全框架:SSKeyChain

SSKeyChains對蘋果安全框架API進行了簡單封裝,支持對存儲在鑰匙串中密碼、賬戶進行訪問,包括讀取、刪除和設置。SSKeyChain的作者是大名鼎鼎的SSToolkit的作者samsoffes。 項目地址:https://github.com/samsoffes/sskeychain 在工程中加入SSK…

java編程基礎素數實驗報告,JAVA 基礎編程練習題1 (輸出素數)

JAVA 基礎編程練習題1 (輸出素數)JAVA 基礎編程練習題1 (輸出素數)題目:判斷 101-200 之間有多少個素數,并輸出所有素數。程序分析:判斷素數的方法:用一個數分別去除 2 到 sqrt(這個數),如果能被整除,則表明…

Go語言在掃碼支付系統中的成功實踐

今天的內容主要分四個方面。第一,金融支付系統的一些特點;第二,我們的掃碼支付系統技術選型;第三,系統迭代過程中的架構演進;第四,與Go相關的一些坑。 金融支付系統的一些特點 圖 1 首先從業務流程入手,其實非常簡單。…

一站式學習Wireshark(七):Statistics統計工具功能詳解與應用

Wireshark一個強大的功能在于它的統計工具。使用Wireshark的時候,我們有各種類型的工具可供選擇,從簡單的如顯示終端節點和會話到復雜的如Flow和IO圖表。本文將介紹基本網絡統計工具。包括:捕捉文件摘要(Summary),捕捉…

UIKit框架各個類的簡介

1.UIAcceleration: 被叫做加速事件的一個UIAcceleration類的實例是用來代表即時的三維加速數據。為了接收重力加速度,要注冊一個應用應用程序作為一個共享UIAccelerater對象的委托對象(參考UIAcceleromete類)。 2. UIAccelerater: UIAccelera…

php堆是什么,PHP 堆與堆排序的詳解

堆排序&#xff1a;堆排序是利用堆的性質進行的一種選擇排序。下面先討論一下堆。1.堆堆實際上是一棵完全二叉樹&#xff0c;其任何一非葉節點滿足性質&#xff1a;Key[i]<key[2i1]&&Key[i]<key[2i2]或者Key[i]>Key[2i1]&&key>key[2i2]即任何一非葉…

Odoo (OpenERP/TinyERP)-10.0 (Debian 8)

平臺&#xff1a; Ubuntu 類型&#xff1a; 虛擬機鏡像 軟件包&#xff1a; odoo-10.0commercial erp odoo open source openerp tinyerp服務優惠價: 按服務商許可協議 云服務器費用:查看費用 立即部署產品詳情 產品介紹Odoo https://www.odoo.com/ &#xff08;前Op…

iOS開發- 藍牙后臺接收數據(BLE4.0)

最近在做一個藍牙相關的項目, 需要在應用進入后臺, 或者手機屬于鎖屏狀態的情況下, 仍然保持藍牙連接, 并且能正常接收數據。 本來以后會很麻煩, 但是學習了下..發現就2步而已。簡單的不能再簡單了。 好了。下面是具體實現辦法。 1.在xxx-info.plist文件中, 新建一行 Required…

貪心(數據結構):COGS 468. [NOI2010]超級鋼琴

★★★☆ 輸入文件&#xff1a;piano.in 輸出文件&#xff1a;piano.out 簡單對比 時間限制&#xff1a;2 s 內存限制&#xff1a;512 MB 超級鋼琴 【問題描述】 小Z是一個小有名氣的鋼琴家&#xff0c;最近C博士送給了小Z一架超級鋼琴&#xff0c;小Z希望能夠用這架…

java實現選擇排序 帶打印,選擇排序算法的JAVA實現

選擇排序算法的JAVA實現package Utils.Sort;/***利用選擇排序法對數組排序&#xff0c;數組中元素必須實現了Comparable接口。*/public class ChooseSort implements SortStrategy{/***對數組obj中的元素以選擇排序算法進行排序*/public void sort(Comparable[] obj){if (obj …

angularjs初始化時不顯示模板內容, 不顯示html, 不顯示template

template的內容可能在需要的數據準備好之前就顯示出來了, ng-cloak可以解決這個問題 ng-cloak <div id"template1" ng-cloak>{{ hello }}</div> <div id"template2" class"ng-cloak">{{ world }}</div>

左右箭頭滑動列表

//slideshow 左右箭頭滑動一組li焦點圖 autoSlide();function autoSlide(){clearAutoSsetInterval(autoFunS,5000);}function autoFunS(){var loc$(".slideshow-box ul").css("left");if(loc"-2370px"){loc"1185";}var newlocparseInt…

20159206《網絡攻防實踐》第四周學習總結

20159206《網絡攻防實踐》第四周學習總結 教材學習內容總結 本章主要介紹了網絡嗅探和協議分析 網絡嗅探是一種常用的竊聽技術&#xff0c;利用計算機的網絡接口截獲目的地為其他計算機的數據報文&#xff0c;以監聽數據流中所包含的用戶賬戶密碼或私密信息等。 網絡泄灘具有很…

四六級php,詳解四六級查詢API+網頁

這個API是第三方API&#xff0c;第三方API的工作原理大都基于此&#xff0c;本文主要起一反三之作用&#xff0c;代碼的不處周之還望及時指出。開發環境&#xff1a;WinServer2012 php7.0 Apache2.4.8思路&#xff1a;向官方查詢界面傳遞參數&#xff0c;使用curl抓取結果網頁…

終于把joomla 的 protostar 模版的菜單,從垂直改到水平了

protostar-applying-menu-class-suffixes-horizontal-vs-vertical-menus.html joomla 3.7.5 附帶的這個template , 菜單丑的要死。 估計是新改的。 看網上的其他站點都沒這毛病。 最后終于找到解決方法了。“ nav-pills“ 前面是有空格的 To make the menu horizonal, you can …

Find non-overlap jobs with max cost

Given a set of n jobs with [start time, end time, cost] find a subset so that no 2 jobs overlap and the cost is maximum.Job: &#xff08;start_time, end_time] --- cost 如果只是求maxCost, 一維就可以做。 但是如果要知道有選了哪些job&#xff0c;則需要存成二維。…