我正在用Giraph运行一些基本示例,我想验证EdgeInputFormat正在读取的数据。在经典的MapReduce作业中,我可以使用Counters做到这一点,而Giraph为此使用聚合器。 (https://giraph.apache.org/aggregators.html)

在网站上说,聚合器应在母版上注册。我编写的唯一代码是扩展BasicComputation并实现compute()方法的类。有人可以指出我应该在哪里注册它们,以及在读取数据时如何使用它们?

最佳答案

我已经知道如何去做。

我实现了一个扩展MasterCompute的类,并在initialize()方法中注册了一个持久聚合器。我使用了IntSumAggregator

之后,在EdgeInputFormat中,我可以使用aggregate("myAggregator", new IntWritable(1));
MasterCompute是使用-mc行参数设置的。

10-06 13:46