欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:大數(shù)據(jù) Hadoop—HDFS

柚子快報激活碼778899分享:大數(shù)據(jù) Hadoop—HDFS

http://yzkb.51969.com/

Hadoop是什么

Hadoop是一個軟件也是一個生態(tài)圈

Hadoop—HDFS 是什么

分布式文件系統(tǒng)——軟件 HDFS

廉價磁盤存儲海量數(shù)據(jù)實現(xiàn)存儲計算

將多磁盤對外提供一個視圖一一RAID

Hadoop-HDFS 工作流程

客戶端 -> NameNode 一般最少倆臺存儲元數(shù)據(jù)(存儲的文件名格式等) 不包擴數(shù)據(jù)存儲的DataNode節(jié)點 多臺NameNode根據(jù)Zookeeper進行選主當主節(jié)點宕機會自動切換,如果是因為網(wǎng)絡延時Zookeeper沒能監(jiān)聽到,會先殺死該線程再切換主節(jié)點

主節(jié)點才能寫進QJM(日志存儲系統(tǒng)) 至少啟動三個節(jié)點(QJM自身選主,三個集群)

NameNode -> DataNode 一個塊數(shù)據(jù)會在三個DataNode存儲

DataNode->NameNode NameNode發(fā)起心跳機制,監(jiān)聽DataNode是否在正常運行 復制日志也在該命令中完成

客戶端

1.分割過大的文件

2.詢問NN文件上傳或從哪下載

3.與DN建立關系進行讀寫

ANN Active NameNode(主節(jié)點服務器)

1,接收客戶端的讀寫詩求

2.通過心跳匯報塊與DN的映射關系

3.通過心跳匯報資游情況

DN DataNode(磁盤)

1.接收客戶端的讀寫請求

2,存儲文件與塊的映射關系

3,收集塊與DN的映射關系

Hadoop 模型

Hadoop Common 基礎型功能 Hadoop自己使用的系統(tǒng)文件

Hadoop Distributed File System 負責存放數(shù)據(jù) (HDFS)

Hadoop YARN 負責資源的調配

Hadoop MapReduce 大數(shù)據(jù)的計算框架

HDFS 恢復存儲數(shù)據(jù)的方式

1.edits文件用于存儲元數(shù)據(jù),默認2分鐘生成一個

2.只有ANN才會生成edits文件

3.主備NN的edits都是不完整,但是QJM是完整的

4.fsimage是快照文件,用于壓縮存儲edits快速恢復元數(shù)據(jù)至內存

5.fsimage時間緯度:默認一小時生成一次,操作緯度:默認100W,時間緯度和操作緯度觸發(fā)檢查間隔時間:1分鐘

6.ANN會使用fsimage加edits inprogress文件還有大于fsimage的edits文件即可完全恢復元數(shù)據(jù)

7.fsimage文件生成的工作由SNN完成并拷貝至ANN

Hadoop-HA

hadoop-HA集群運作機制介紹 所謂HA,即高可用,消除單點故障

設計思想

hadoop2.x啟用了主備節(jié)點切換模式(1主1備) hadoop1.x沒有HA當主節(jié)點出現(xiàn)異常的時候,集群直接將備用節(jié)點切換成主節(jié)點

要求備用節(jié)點馬上就要工作主備節(jié)點內存幾乎同步有獨立的線程對主備節(jié)點進行監(jiān)控健康狀態(tài)需要有一定的選舉機制,幫助我們確定主從關系我們需要實時存儲日志的中間件

ANN

Active NameNode 的功能和原理的NN的功能是一樣的接受客戶端請求,查詢數(shù)據(jù)塊DN信息存儲數(shù)據(jù)的元數(shù)據(jù)信息

數(shù)據(jù)文件:Block:DN的映射關系

工作

啟動時:接受DN的block匯報運行時:和DN保持心跳(3s,10m30s)存儲介質

完全基于內存優(yōu)點:數(shù)據(jù)處理效率高缺點:數(shù)據(jù)的持久化(日志edits+快照fsimage)

SNN

Standby NameNode:NN的備用節(jié)點他和主節(jié)點做同樣的工作,但是它不會發(fā)出任何指令存儲:數(shù)據(jù)的元數(shù)據(jù)信息

數(shù)據(jù)文件:Block:DN的映射關系它的內存數(shù)據(jù)和主節(jié)點內存數(shù)據(jù)幾乎是一致的工作:

啟動時: 接受DN的block匯報運行時: 和DN保持心跳(3s,10m30s)存儲介質

完全基于內存優(yōu)點:數(shù)據(jù)處理效率高缺點:數(shù)據(jù)的持久化合并日志文件和鏡像

當搭建好集群的時候,格式化主備節(jié)點的時候,ANN和SNN都會會默認創(chuàng)建

fsimage_000000000000000當我們操作HDFS的時候ANN會產生日志信息

edits_inprogress_0000000000001主節(jié)點會將日志文件中新增的數(shù)據(jù)同步到JournalNode集群上edits 文件默認 2 分鐘生成一個,默認上限 100W 個;只有 Active NameNode 才可以將 edits 元數(shù)據(jù)寫入到 QJM;每個 NameNode 上的 edits 元數(shù)據(jù)是不完整的(主備切換導致),但是 QJM 中一定是完整的;Hadoop 2.x 以及以后 fsimage 文件的合并機制:

時間緯度:1 小時合并一次;緯度檢查周期:默認 1 分鐘檢查一次。操作緯度:edits 操作次數(shù)超過 100W 次;QJM 只保存 edits 文件,不保存 fsimage 文件,fsimage 文件只保存在 NameNode 中;SNN將合并好的Fsimage發(fā)送給ANN,ANN驗證無誤后,存放到自己的目錄中。

DataNode(DN)

存儲

文件的Block數(shù)據(jù)

介質

硬盤啟動時

同時向兩個NN匯報Block信息運行中

同時和兩個NN節(jié)點保持心跳機制

QJM

Quorum JournalNode Manager 共享存儲系統(tǒng),NameNode通過共享存儲系統(tǒng)實現(xiàn)日志數(shù)據(jù)同步。JournalNode是一個獨立的小集群,它的實現(xiàn)原理和Zookeeper的一致( Paxos)ANN產生日志文件的時候,就會同時發(fā)送到 JournalNode的集群中每個節(jié)點上JournalNode不要求所有的jn節(jié)點都接收到日志,只要有半數(shù)以上的(n/2+1)節(jié)點接受收到日志,那么本條日志就生效SNN每間隔一段時間就去QJM上面取回最新的日志

SNN上的日志有可能不是最新的

HA集群的狀態(tài)正確至關重要,一次只能有一個NameNode處于活動狀態(tài)。JournalNode只允許單個NameNode成為作者。在故障轉移期間,將變?yōu)榛顒訝顟B(tài)的NameNode將承擔寫入 JournalNodes的角色,這將有效地防止另一個NameNode繼續(xù)處于活動狀態(tài),從而使新的Active節(jié)點可以安全地進行故障轉移。

ZKFC (Zookeeper 故障轉移控制器)

Failover Controller(故障轉移控制器)對 NameNode 的主備切換進行總體控制,能及時檢測到 NameNode 的健康狀況

在主 NameNode 故障時借助 Zookeeper 實現(xiàn)自動的主備選舉和切換為了防止因為NN的GC失敗導致心跳受影響,ZKFC作為一個deamon進程從NN分離出來啟動時

當集群啟動時,主備節(jié)點的概念是很模糊的當ZKFC只檢查到一個節(jié)點是健康狀態(tài),直接將其設置為主節(jié)點當zkfc檢查到兩個NN節(jié)點是的健康狀態(tài),發(fā)起投票機制選出一個主節(jié)點,一個備用節(jié)點,并修改主備節(jié)點的狀態(tài)運行時

由這 3 個組件來協(xié)同實現(xiàn)主備切換

ZKFailoverController啟動的時候會創(chuàng)建 HealthMonitor 和 ActiveStandbyElector 這兩個主要的內部組件ActiveStandbyElector 主要負責完成自動的主備選舉,內部封裝了 Zookeeper 的處理邏輯HealthMonitor 主要負責檢測 NameNode 的健康狀態(tài)主備節(jié)點正常切換

NameNode 在選舉成功后,ActiveStandbyElector會在 zk 上創(chuàng)建一個ActiveStandbyElectorLock 臨時節(jié)點,而沒有選舉成功的備 NameNode 中的 ActiveStandbyElector會監(jiān)控這個節(jié)點如果 Active NameNode 對應的 HealthMonitor 檢測到 NameNode 的狀態(tài)異常時, ZKFailoverController 會主動刪除 當前在 Zookeeper 上建立的臨時節(jié)點ActiveStandbyElectorLock如果是 Active NameNode 的機器整個宕掉的話,那么跟zookeeper連接的客戶端線程也掛了,會話結束,那么根據(jù) Zookeepe的臨時節(jié)點特性,ActiveStandbyElectorLock 節(jié)點會自動被刪除,從而也會自動進行一次主備切換處于 Standby 狀態(tài)的 NameNode 的 ActiveStandbyElector 注冊的監(jiān)聽器就會收到這個節(jié)點的 NodeDeleted 事件,并創(chuàng)建 ActiveStandbyElectorLock 臨時節(jié)點,本來處于 Standby 狀態(tài)的 NameNode 就選舉為Active NameNode 并隨后 開始切換為 Active 狀態(tài)。

ZooKeeper

為主備切換控制器提供主備選舉支持。輔助投票和ZKFC保持心跳機制,確定ZKFC的存活

腦裂brain-split

定義

腦裂是Hadoop2.X版本后出現(xiàn)的全新問題,實際運行過程中很有可能出現(xiàn)兩個namenode同時服務于整個集群的情況,這種情況稱之為腦裂。

原因

腦裂通常發(fā)生在主從namenode切換時,由于ActiveNameNode的網(wǎng)絡延遲、設備故障等問題,另一個NameNode 會認為活躍的NameNode成為失效狀態(tài),此時StandbyNameNode會轉換成活躍狀態(tài),此時集群中將會出現(xiàn)兩個活 躍的namenode。因此,可能出現(xiàn)的因素有網(wǎng)絡延遲、心跳故障、設備故障等。腦裂場景

NameNode 可能會出現(xiàn)這種情況,NameNode 在垃圾回收(GC)時,可能會在長時間內整個系統(tǒng)無響應zkfc客戶端也就無法向 zk 寫入心跳信息,這樣的話可能會導致臨時節(jié)點掉線,備 NameNode 會切換到 Active 狀態(tài)這種情況可能會導致整個集群會有同時有兩個Active NameNode腦裂問題的解決方案是隔離(Fencing)

1.第三方共享存儲:任一時刻,只有一個 NN 可以寫入;2.DataNode:需要保證只有一個 NN 發(fā)出與管理數(shù)據(jù)副本有關的命令;3.Client需要保證同一時刻只有一個 NN 能夠對 Client 的請求發(fā)出正確的響應。

(a) 每個NN改變狀態(tài)的時候,向DN發(fā)送自己的狀態(tài)和一個本次選舉對應的序列號。(c) 如果這時原來的active(比如GC)恢復,返回給DN的心跳信息包含active狀態(tài)和原來的序列號,這時DN就 會拒絕這個NN的命令。DN接收到這個返回是認為該NN為新的active。(b) DN在運行過程中維護此序列號,當failover時,新的NN在返回DN心跳時會返回自己的active狀態(tài)和一個更 大的序列號。解決方案

ActiveStandbyElector為了實現(xiàn) fencing,當NN成為ANN之后創(chuàng)建Zookeeper臨時節(jié)點ActiveStandbyElectorLock,創(chuàng) 建ActiveBreadCrumb 的持久節(jié)點,這個節(jié)點里面保存了這個 Active NameNode的地址信息(node-01)Active NameNode的 ActiveStandbyElector在正常的狀態(tài)下關閉 Zookeeper Session 的時候,會一起刪除這個持久節(jié) 點但如果 ActiveStandbyElector在異常的狀態(tài)下關閉,那么由于 /hadoop-ha/${dfs.nameservices}/ActiveBreadCrumb 是持久節(jié)點,會一直保留下來,后面當另一個 NameNode 選主成功之后,會注意到上一個 Active NameNode 遺留 下來的這個節(jié)點,從而會回調 ZKFailoverController的方法對舊的 Active NameNode 進行 fencing。

首先嘗試調用這個舊 Active NameNode 的 HAServiceProtocol RPC 接口的 transitionToStandby 方法,看能不能 把它轉換為 Standby 狀態(tài);如果 transitionToStandby 方法調用失敗,那么就執(zhí)行 Hadoop 配置文件之中預定義的隔離措施。

1. sshfence:通過 SSH 登錄到目標機器上,執(zhí)行命令 fuser 將對應的進程殺死2. shellfence:執(zhí)行一個用戶自定義的 shell 腳本來將對應的進程隔離在成功地執(zhí)行完成 fencing 之后,選主成功的 ActiveStandbyElector 才會回調 ZKFailoverController 的 becomeActive 方法將對應的 NameNode 轉換為 Active 狀態(tài),開始對外提供服務。新的主創(chuàng)建臨時節(jié)點ActiveStandbyElectorLock,創(chuàng)建持久化節(jié)點ActiveBreadCrumb ,并將自己的主機地址Node02 賦值給初始化節(jié)點

柚子快報激活碼778899分享:大數(shù)據(jù) Hadoop—HDFS

http://yzkb.51969.com/

推薦文章

評論可見,查看隱藏內容

本文內容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉載請注明,如有侵權,聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19428732.html

發(fā)布評論

您暫未設置收款碼

請在主題配置——文章設置里上傳

掃描二維碼手機訪問

文章目錄