在Hadoop中,当我使用FileOutputFormat
时,我在最后得到一份报告,描述了日志中记录的数量,写入的字节数等(我认为这是作业跟踪器日志)。
现在在Spark中我通过FileOutputFormat
方法使用相同的saveAsNewAPIHadoopDataset
:
myPairRdd.saveAsNewAPIHadoopDataset(config);
但我无法弄清楚如何从FileOutputFormat
收集统计数据。
在Spark应用程序中,我使用累加器作为计数器来获取一些统计信息,但我想在FileOutputFormat中收集统计信息并在最后报告它。
我甚至愿意自己编写FileOutputFormat
& RecordWriter
委托人,它会计算记录并将记录的实际写入委托给(内部)FileOutputFormat
。我有点担心在用户定义的记录编写器中运行计数,因为我不确定如何在所有任务中从所有编写器收集数据。
收集此信息的最佳方式是什么?