====== MapReduce Tutorial : Counters ====== Sometimes it is useful to count events differently than outputting them as (key, value) pairs. For that reason Hadoop offers simple counter framework. Hadoop maintains a collection of pre-defined and user-defined counters. Every counter is identified by its group name and counter name. The group name and counter name is an arbitrary string -- for example group "Documents" and name "Number of words". To increment a counter, the following code can be used: sub map { my ($self, $key, $value, $context) = @_; $context->counter($group, $counter, $increment); } At the end of computation, Hadoop prints an aggregated value of all the counters. ===== Exercise ===== Run a Hadoop job on ''/home/straka/wiki/cs-text-medium'', which uses counters to count the number of articles according to their first letter (ignoring the case). You can download the template {{:courses:mapreduce-tutorial:step-4-exercise.txt|step-4-exercise.pl}} and execute it. wget --no-check-certificate 'https://wiki.ufal.ms.mff.cuni.cz/_media/courses:mapreduce-tutorial:step-4-exercise.txt' -O 'step-4-exercise.pl' # NOW EDIT THE FILE # $EDITOR step-4-exercise.pl rm -rf step-4-out-ex; perl step-4-exercise.pl /home/straka/wiki/cs-text-medium/ step-4-out-ex less step-4-out-ex/part-* ==== Solution ==== You can also download the solution {{:courses:mapreduce-tutorial:step-4-solution.txt|step-4-solution.pl}} and check the correct output. wget --no-check-certificate 'https://wiki.ufal.ms.mff.cuni.cz/_media/courses:mapreduce-tutorial:step-4-solution.txt' -O 'step-4-solution.pl' # NOW VIEW THE FILE # $EDITOR step-3-solution.pl rm -rf step-4-out-sol; perl step-4-solution.pl /home/straka/wiki/cs-text-medium/ step-4-out-sol less step-4-out-sol/part-* ----
[[step-3|Step 3]]: Basic mapper. [[.|Overview]] [[step-5|Step 5]]: Basic reducer.