Gabi und Sascha
Tags - Kategorien : Alle | Berlin | Bücher | Fotografie | Java | Linkhalde | Weichware | Verfassung

Mit HadoopTestCase bietet Hadoop eine einfache Möglichkeit den Hadoop Map/Reduce Prozess in einer Testumgebung auszuführen. Das Ergebnis des Prozesses zu prüfen ist indirekt über RunningJob möglich. RunningJob wird von JobClient.runJob(jobConf); zurück geliefert. Über RunningJob können die Counter der Reporter-Klasse abgefragt werden.

Mapper Beispiel:


    public class SentencerMapper extends MapReduceBase
            implements Mapper<LongWritable, Text, Text, Text> {

        public void map(final LongWritable positionInFile,
                        final Text eosDoc,
                        final OutputCollector<Text, Text> outputCollector,
                        final Reporter reporter) throws IOException {
            // do Something…
            reporter.incrCounter(Index.MAP, 1);
        }
    }

Testcode:


    public  class CombiningSentencerReducerTest extends HadoopTestCase {

        public void testSimpleJob() throws Exception {
            // prepare test…
            // and run…
            final RunningJob job = JobClient.runJob(jobConf);
            job.waitForCompletion();

            final Counters counters = job.getCounters();

            assertEquals(4, counters.getCounter(Index.MAP));
            assertEquals(2, counters.getCounter(Index.REDUCE));
        }
    }