原创 UnderReplicatedBlocks處理流程

原文鏈接:https://my.oschina.net/u/3987818/blog/3100408 此圖基本解釋清楚了hdfs處理block副本不足、分佈不合理的流程。 https://my.

原创 hadoop SLA

原文鏈接:https://my.oschina.net/u/3987818/blog/3093732 hadoop sla(Service Level Authorization) 核心源碼分析

原创 LightWeightGSet(hadoop namenode 保存block的數據結構)

原文鏈接:https://my.oschina.net/u/3987818/blog/3097032 爲了降低保存block的內存開銷,同時保證訪問效率,namenode使用 LightWeig

原创 hdfs Balancer剖析

原文鏈接:https://my.oschina.net/u/3987818/blog/3086282 HDFS Balancer 原理、核心代碼剖析、常見問題診斷。 https://my.osc

原创 hadoop集羣間數據遷移工具 原

背景     當前比較流行的hdfs間數據遷移工具有hadoop默認提供的distcp,阿里開源的DataX,這些工具能夠滿足常規的大部分需求,但是當時碰到hadoop版本不一致、keberos授權等場景時就行不通了。針對這些特殊的應用場

原创 Standby Namenode Checkpoint過程剖析 頂 原

        Standby Namenode(sbn)在進入standby狀態後對FSNamesystem調用startStandbyServices(final Configuration conf),該方法會創建兩個重要的對象:Ed

原创 hdfs元數據文件(fsimage、edits)清理 頂 原

Standby namenode (sbn)的EditLogTailer的功能之一就是觸發Active Namenode(nn) rollEditLog。每隔${dfs.ha.tail-edits.period}秒(默認60)秒,EditL

原创 FSEditLog之edit 記錄過程 頂 原

HA模式下所有對namespace的修改操作都會被nn優先記錄[HDFS-2874]到jnode集羣以便跟snn共享,然後再記錄到nn本地文件中。 通常JournalSet中維護了兩類記錄edit的方式: 通過QuorumOutputS

原创 FSEditLog之核心類分析 原

1、JournalSet JournalSet是維護Journals的集合,FSEditLog通過initJournals(List dirs)填充該集合。 private synchronized void initJournals(

原创 hdfs auditlog(審計日誌) 頂 原 薦

        hdfs審計日誌(Auditlog)記錄了用戶針對hdfs的所有操作,詳細信息包括操作成功與否、用戶名稱、客戶機地址、操作命令、操作的目錄等。對於用戶的每一個操作,namenode都會將這些信息以key-value對的形式組

原创 java字符流

       閱讀hdfs的源碼看到有對java流進行擴展來對文件、文件塊進行讀寫,順便就將流這一塊再次梳理一下。前面已經從類圖上簡要介紹了字節流,現在再分析下字符流。 讀字符流 寫字符流

原创 LocalJobRunner

       hadoop作業分本地模式和分佈式模式兩種執行模式,JobClient初始化時會讀取配置項mapred.job.tracker(默認爲local),如果該配置項的值爲local,則hadoop採本地模式執行作業,否則採用分

原创 java字節流

有關java流的詳細介紹網上隨處可見,就不再贅述了,本篇博客畫出了java字節流的類圖。 字節輸入流     字節輸出流            java io是裝飾者模式的典型代表。以輸出字節流爲例,FilterOutputStre

原创 MapReduce讀取數據

        MapReduce處理數據的基本原則之一就是將輸入數據分割成片(split),按片讀取數據,每個分片交由一個Mapper去做處理。注意,輸入分片只是一種邏輯劃分,有別於hdfs的數據分塊(block),數據分塊是數據的物

原创 類加載器

類加載器的繼承層次 java類加載器按照如下圖所示的結構組織,各加載器各司其職只加載自己管轄範圍內的類。引導類加載器(Bootstrap):java虛擬機內置的加載器,在虛擬機啓動的時候會用這個類加載器來加載 JDK安裝目錄下的 /JR