我正在用Giraph运行一些基本示例,我想验证EdgeInputFormat
正在读取的数据。在经典的MapReduce作业中,我可以使用Counters做到这一点,而Giraph为此使用聚合器。 (https://giraph.apache.org/aggregators.html)
在网站上说,聚合器应在母版上注册。我编写的唯一代码是扩展BasicComputation
并实现compute()方法的类。有人可以指出我应该在哪里注册它们,以及在读取数据时如何使用它们?
最佳答案
我已经知道如何去做。
我实现了一个扩展MasterCompute
的类,并在initialize()方法中注册了一个持久聚合器。我使用了IntSumAggregator
。
之后,在EdgeInputFormat
中,我可以使用aggregate("myAggregator", new IntWritable(1));
。MasterCompute
是使用-mc
行参数设置的。