我正在做一项学校作业来分析hadoop中堆的使用。它涉及运行两个版本的 mapreduce 程序来计算论坛评论长度的中位数:第一个是“内存无意识”,reduce 程序在内存中处理每个评论长度的列表;第二个是“内存意识”,reducer 使用一种非常节省内存的数据结构来处理数据。
目的是使用这两个程序来处理不同大小的数据,并观察第一个程序的内存使用情况如何更快地上升(直到最终内存不足)。
我的问题是:如何获取 hadoop 或 reduce 任务的堆使用情况?
我虽然计数器“总提交堆使用量(字节)”会包含此数据,但我发现两个版本的程序返回几乎相同的值。
关于程序的正确性,“无记忆”的程序在大量输入时内存不足并失败,而另一个程序没有并且能够完成。
提前致谢