我想测量在Hadoop中执行I / O(从HDFS读取)时映射和减少的时间。我正在使用Yarn。 Hadoop 2.6.0。 有什么选择?
答案 0 :(得分:1)
一个粗略的估计可能是创建自定义计数器。对于mapper和reducer,您可以在mapper(或reducer)开始处理和结束时收集时间戳。从开始和结束时间戳开始,计算并将其添加到自定义计数器,即mappers添加到MAPPER_RUNNING_TIME
,reducers添加到REDUCER_RUNNING_TIME
(或者您希望给它的任何名称)。执行完成后,分别从MILLIS_MAPS
和MILLIS_REDUCES
减去计数器的汇总值。您可能需要查看Hadoop源代码,以确认暂存时间是否包含在MILLIS_MAPS
和MILLIS_REDUCES
中。通过这种估计,您需要考虑到任务正在同时执行,因此时间将相当完全(或聚合所有映射器和缩减器)。
我个人没有这样做,但我认为除非你找到更好的解决方案,否则这个解决方案可行。
答案 1 :(得分:1)