原创 HDFS 讀寫分離 (源碼分析1 :支持從Standby Namenode讀)

文章目錄背景ObserverNamenode(Namenode)的啓動 背景 讀寫分離架構篇HDFS 讀寫分離(總體架構介紹),我們綜述了需要怎麼實現讀寫分離。我們深入瞭解了社區現在正在實現和完善的方式,就是支持從Standby

原创 趣頭條百PB規模 Hadoop實踐(HDFS篇)

HDFS實踐文章背景NameNode負載和擴展性問題拆RPC端口以及拆NameSpace組成FederationBalancer負載轉移和搬遷優化拆分日誌相關的NameSpace降低負載NameNode用戶的擁塞控制異步化各種操作

原创 HDFS 讀寫分離(總體架構介紹)

文章目錄爲什麼HDFS需要讀寫分離當前架構:HA同步機制簡單介紹:讀寫的全局鎖怎麼改善全局鎖限制1. 拆鎖,把鎖的粒度拆的更細。1.1 採用分段鎖,把全局鎖分段,如下圖所示:2. 從Standby Namenode進行讀一致性讀實

原创 深入理解YARN全局調度和源碼分析

深入理解YARN全局調度和源碼分析背景原始的心跳調度模式全局調度的調度模式全局調度反客爲主全局調度併發判斷基於Capacity Scheduler的全局調度源碼分析集羣資源生產過程源碼分析集羣資源消費過程源碼分析 背景 之前寫了一

原创 應用程序在YARN中的整體運行流程和狀態機 (NodeManager端)

在上一篇應用程序在YARN中的整體運行流程和狀態機 (ResourceManager端)我們詳細分析了,應用程序在RM端的狀態機變遷,掠過了在NodeManager部分,這篇文章我們詳細分析,作業運行流程中在NodeManger上面的

原创 應用程序在YARN中的整體運行流程和狀態機 (ResourceManager端)

作業提交到ResourceManager以後會有狀態機的變遷過程,如下爲詳細狀態機分析,使用的是Hadoop 2.6.0的版本進行源碼分析的狀態機,本篇文章主要是RM端核心的狀態機變遷,之後會另外寫一篇AM端,即在NodeManage

原创 MapReduce作業的map任務個數(split)如何確定

MapReduce作業map任務的個數是根據輸入文件的分片(split)個數決定的,一個split對應一個map任務。 這個個數是在作業提交到RM之前就確定了,我們以hadoop 3.1.0版本爲例,深入源碼看一下: Job.subm

原创 Hadoop Yarn 3.1.0 源碼分析 (03 容器分配和投運)

接下來我們看容器的分配和在NM節點上的投運過程,接着上一篇: FairScheduler.handle() -> FairScheduler.nodeUpdate() -> FairScheduler.attemptScheduling

原创 Hadoop Yarn延遲調度分析(Delay Schedulering)

大規模集羣中,對數據本地化(data loality)的優化,可以減少很多網絡IO,變成本地的磁盤IO,而磁盤的IO比網絡的IO快很多,這對降低集羣的IO負載以及增加集羣的吞吐量是很有益處的,所以我對Yarn中的延遲調度進行分析,嘗試提高

原创 Hadoop Yarn 3.1.0 源碼分析 (02 作業調度)

在上一節中,我們詳細分析了作業是如何上岸的,現在作業 已經到達了RM端,並且交給了 RMAppManager進行繼續運轉,我們繼續跟蹤作業是如何在YARN中如何運轉。 Server端: ApplicationClientProtoco

原创 Hadoop Yarn (FairScheduler) 多角度核心源碼分析01

研究調度器,我們首先要知道調度器的客戶是誰,誰需要調度,有以下兩種來源: (1)作業提交的時候,申請運行AppMaster需要的容器時 (2)作業運行期間,AppMaster申請運行map以及reduce任務,或者spark任務等等所

原创 Hadoop YARN Node Label

在節點標籤(Node Label)出現之前,資源申請方,是無法指定特定節點的資源的,比如需要運行GPU節點,需要有SSD存儲的節點等等。應用是無法指定特定節點上面的特定資源的,我們也無法對集羣中的各個節點進行分區。 節點標籤 節點標籤的

原创 Hadoop Yarn大集羣(千臺以上)長作業pending的問題分析

大集羣Hadoop Yarn隊列pending優化 1.目前公司集羣採用的規模越來越大,很多長作業出現了pending的現象。 優化方法: 調整參數yarn.resourcemanager.nodemanagers.heartbeat-

原创 YARN global scheduling (全局調度思想解析)

** YARN全局調度 ** 本文將對 https://issues.apache.org/jira/browse/YARN-5139 這個yarn前瞻性功能,全局調度的思想進行深入分析。 首先了解一下全局調度和現有的調度模式有何區別,

原创 Hadoop Yarn 3.1.0 源碼分析 (01 作業上岸:從提交的節點到RM節點的過程)

引言 爲了更全面和更加有意義的分析Hadoop Yarn的源碼,我決定從一個作業提交到到作業生命週期結束的角度來分析Yarn的源碼。我們將會屏蔽MapReduce部分的過程,因爲我們現在的重點是研究Yarn的源碼,以後我們單獨針對Map