原创 JobTracker節點後臺線程之CompleteJobStatusStore

       上一篇博文講了JobTracker節點會在內存中緩存一部分已完成Jobs狀態信息,其實JobTracker節點還可以持久化地保存這些已完成Jobs信息,即將每一個Job的狀態信息保存在一個單獨的文件中,這個文件可以屬於本地文

原创 Job的任務執行流程之JobSetup階段

      客戶端用戶在成功提交Job之後,該Job並不會馬上被JobTracker節點調度執行,因爲這個Job還沒有被初始化,至於JobTracker節點是如何初始化Job的,我在前面已經詳細的談到過。當一個提交的Job在被初始化之後,

原创 TaskTracker節點上的內存管理器

       Hadoop平臺的最大優勢就是充分地利用了廉價的PC機,這也就使得集羣中的工作節點存在一個重要的問題——節點所在的PC機內存資源有限(這裏所說的工作節點指的是TaskTracker節點),執行任務時常常出現內存不夠的情況,如

原创 HDFS小文件問題及解決方案

1、  概述 小文件是指文件size小於HDFS上block大小的文件。這樣的文件會給hadoop的擴展性和性能帶來嚴重問題。首先,在HDFS中,任何block,文件或者目錄在內存中均以對象的形式存儲,每個對象約佔150byte,如果有1

原创 JobTracker節點後臺線程之RetireJobs

     Hadoop中的用戶作業在其整個生命週期中有5個狀態,它們分別是:PREP、RUNNING、SUCCEEDED、FAILED、KILLED,而這其中的SUCCEEDED、FAILED、KILLED三個狀態是互斥的,都可看做是Jo

原创 TaskTracker節點上的HttpServer

   在前面的博文:TaskTracker節點的內部設計與實現 中,我曾詳細的概述了TaskTracker節點中的各個工作組件,而在本文,我將對其內部的Http服務組件展開詳細的討論。      TaskTracker節點的內部Http服

原创 Job的任務執行流程之JobCleanup階段

    JobTracker節點給TaskTracker節點分配作業任務時是有優先級順序的,JobTracker節點總是優先分配一個作業的輔助任務,然後在分配作業的正式任務。其中,作業的輔助任務包括:JobSetup、JobCleanup

原创 Hadoop平臺優化綜述

1.     概述 隨着企業要處理的數據量越來越大,MapReduce思想越來越受到重視。Hadoop是MapReduce的一個開源實現,由於其良好的擴展性和容錯性,已得到越來越廣泛的應用。Hadoop作爲一個基礎數據處理平臺,雖然其應用

原创 Job的任務執行流程之TaskCleanup

      任何一個作業在Hadoop集羣中執行主要包括四個階段:setup、map、reduce、cleanup,但在這四個階段都出現任務實例在TaskTracker節點執行失敗的情況。當一個任務實例在TaskTracker節點的JVM

原创 JobTracker節點後臺線程之ExpireLaunchingTasks

      上一篇博文主要講到了JobTracker節點的後臺線程ExpireTrackers,其中談到了TaskTracker節點要向JobTracker節點定時地發送心跳包,來報告它當前的狀態信息(TaskTracker的第一個心跳包

原创 JobTracker節點上的作業恢復RecoveryManager

       基於目前Hadoop的實現,在很多時候大家都會詬病於它的NameNode/JobTracker單點故障問題,特別是NameNode節點,一旦它發生了不可恢復的故障之後就意味着整個HDFS文件系統不在可用了。對於NameNod

原创 JobTracker節點對Task實例狀態報告的處理

     前面談到過,每一個TaskTracker節點都要在它向JobTracker節點發送心跳包的時候順帶報告運行在其上的Task的狀態信息,這些Task是指正在TaskTracker節點上運行的,或者從上一次報告到現在的時間間隔中完成

原创 Job的任務執行流程之Map階段

       一個作業的JobSetup任務被一個TaskTracker節點成功執行並報告到JobTracker節點之後,JobTracker節點就

原创 TaskTracker節點的內部設計與實現

      衆所周知,Hadoop採用master-slave的架構設計來實現Map-Reduce框架,它的JobTracker節點作爲主控節點來管理和調度用戶提交的作業,TaskTracker節點作爲工作節點來負責執行JobTracke

原创 Job的任務執行流程之Reduce階段

     JobTracker節點在給每一個TaskTracker節點分配作業的Map/Reduce任務時,可能會根據該TaskTracker節點的實際情況分配多個Map任務,但確頂多只分配一個Reduce任務,儘管此時該TaskTrac