原創 MapReduce計數器

2022-09-06 01:09:13 字數 1370 閱讀 4786

mapreduce框架內建了一些計數器的支援,當然,我們也可以設定自己的計數器用來滿足一些特殊的要求。

其實計數器可以用來完成很多事,關鍵要看你如何用,例如你想知道map輸入資料的指定記錄特定的資訊有多少可以設定計數,還有,在mr執行過程中,一些特定事件的發生次數也可以記錄。使用計數器的莫大好處在於整個計數的過程只需要再map階段就可以完成,而且也可以不做任何輸出,可以快速的得到自己想要的一些計數結果。但並不是計數器可以設定為無限多,因為計數器過多會影響jt的效率,甚至可能被自定義的分析程式拖垮。

計數器的資訊是儲存再jobtracker中的記憶體中的,tasktracker執行任務時會對設定的資訊進行計數,按照既定的條件對計數器進行累加,並聚合匯報給jt。jt在工作完成的時候做整體聚合。

首先需要定義個列舉類:

package

zebra.shlgao.counters;

public

enum

mycounter

然後在mr程式中分別計數不同counter的數量:

package

zebra.shlgao.counters;

import

j**a.io.ioexception;

import

j**a.net.uri;

import

org.apache.hadoop.conf.configuration;

import

org.apache.hadoop.fs.filesystem;

import

org.apache.hadoop.fs.path;

import

org.apache.hadoop.io.text;

import org.apache.hadoop.mapreduce.*;

import

org.apache.hadoop.mapreduce.lib.input.fileinputformat;

import

org.apache.hadoop.mapreduce.lib.output.fileoutputformat;

public

class

testcounter

else

text(key), value);

}

}public

static

void main(string args) throws

ioexception, classnotfoundexception, interruptedexception

}

由於這裡是快速計數,所以可以不必做任何輸出,但是在配置job的時候必須定義輸出路徑,所以可以在最後將空的輸出路徑刪除。

計數器 智慧型計數器簡介

計數器主要是應用於電子科技領域,計數器是一種運用得比較多的時序邏輯電路。計數器可以對數字進行運算,它是一種沒有辦法顯示計算結果的顯示器。隨著電子科技的不斷發展,現在的計數器也實現了智慧型功能。智慧型計數器的出現幫助我們實現了很多高強度生產問題 複雜的技術問題,並且節約了生產成本和人力成本。智慧型計數...

計數器設計

最近看到一篇文章說要實現乙個計數器的功能,於是通過思索,設計了乙個靈活可用性高的物件計數器。裡面閃爍著 很多的火花。template class object counter object counter private static int m count template int object ...

行波計數器

行波計數器是指每個暫存器的輸出引腳連線到下一級暫存器的時鐘引腳上,如下圖所示 用觸發器來驅動其他觸發器的時鐘輸入端,一般都會存在問題。由於每個暫存器都存在傳播延遲,且每一級觸發器時鐘的延遲會使下一級觸發器的輸入時鐘產生偏移,會造成累積延遲,如下圖所示。行波計數器對於靜態時序分析是乙個巨大的挑戰,因為...