Description
As HDFS-9579 was not committed to branch-2.8, FileSystemStorageStatistics#KEYS should not include those rack aware read stats brought by HDFS-9579, including bytesReadLocalHost, bytesReadDistanceOfOneOrTwo, bytesReadDistanceOfThreeOrFour, bytesReadDistanceOfFiveOrLarger. Or else, the long iterator will throw NPE when traversing. See detailed exception stack as following (it happens when Tez uses the new FileSystemStorageStatistics).
2016-06-15 15:56:59,242 [DEBUG] [TezChild] |impl.TezProcessorContextImpl|: Cleared TezProcessorContextImpl related information 2016-06-15 15:56:59,243 [WARN] [main] |task.TezTaskRunner2|: Exception from RunnerCallable java.lang.NullPointerException at org.apache.hadoop.fs.FileSystemStorageStatistics$LongStatisticIterator.next(FileSystemStorageStatistics.java:74) at org.apache.hadoop.fs.FileSystemStorageStatistics$LongStatisticIterator.next(FileSystemStorageStatistics.java:51) at org.apache.tez.runtime.metrics.FileSystemStatisticsUpdater2.updateCounters(FileSystemStatisticsUpdater2.java:51) at org.apache.tez.runtime.metrics.TaskCounterUpdater.updateCounters(TaskCounterUpdater.java:118) at org.apache.tez.runtime.RuntimeTask.setFrameworkCounters(RuntimeTask.java:172) at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:100) at org.apache.tez.runtime.task.TaskRunner2Callable.callInternal(TaskRunner2Callable.java:37) at org.apache.tez.common.CallableWithNdc.call(CallableWithNdc.java:36) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) 2016-06-15 15:56:59,245 [DEBUG] [main] |task.TaskReporter|: Sending heartbeat to AM, request={ containerId=container_1466028486194_0005_01_000002, requestId=10, startIndex=0, preRoutedStartIndex=1, maxEventsToGet=500, taskAttemptId=attempt_1466028486194_0005_1_00_000000_0, eventCount=4 }
Thanks hitesh for reporting this.