原创 Hadoop對計算節點TaskTracker的懲罰機制

    在前面的一篇博文中,筆者詳細的介紹了JobInProgress是如何給一個TaskTracker節點分配一個Map/Reduce任務的,但在講述的過程中忽略了一個重要的細節,因爲這個細節不是該博文所要講述的重點,這個細節就是,Jo

原创 內存堆管理器GenCollectedHeap的初始化

     前文在介紹Java對象內存分配的上層接口CollectedHeap時就提過, GenCollectedHeap是一種基於內存分代管理的內存堆管理器實現. 它一方面負責java對象的內存分配, 另一方面還得負責垃圾對象的回收, 而

原创 GenCollectedHeap的Gc策略MarkSweepPolicy

    當內存堆管理器響應應用線程的一次內存分配請求失敗時(就是沒有足夠的空閒內存),就會觸發一次Gc來回收部分或所有的垃圾對象好騰出足夠的空間來滿足應用的所需內存,如果還不夠則拋出OOM. MarkSweepPolicy的大體思路就是標

原创 內存堆管理器GenCollectedHeap分配對象內存及Gc觸發

     前面在介紹內存堆管理器的抽象層CollectedHeap時着重提到過, Java對象的內存分配主要涉及到其三個核心方法,這三個方法分別表示: 一.從線程的本地分配緩衝區中分配臨時內存; 二.從內存堆中分配臨時內存; 三.從內存堆

原创 Facebook的公平份額調度器FairScheduler

       FairScheduler是由Facebook公司提出的,爲了解決Facebook要處理生產型作業(數據分析、Hive)、大型批處理作業(數據挖掘、機器學習)、小型交互作業(Hive查詢)的問題。同時滿足不同用戶提交的作業在

原创 詳談計算能力調度器CapacityTaskScheduler

    Hadoop中有一個默認的基於優先級的FIFO任務調度器JobQueueTaskScheduler,它的主要缺點就是對於在集羣比較繁忙的情況,低優先級的作業將很難分配到集羣的計算資源,這樣對於那些低優先級同時又要求一定的響應時間的