HDFS-12371. BlockVerificationFailures and BlocksVerified show up as 0 in Datanode JMX. Contributed by Hanisha Koneru.
(cherry picked from commit 6bf921a5c3152a307b5c0903056d73ce07775a08)
This commit is contained in:
parent
ae42bf73c0
commit
9640bfb808
@ -37,6 +37,7 @@
|
|||||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeReference;
|
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeReference;
|
||||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi.BlockIterator;
|
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi.BlockIterator;
|
||||||
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi;
|
import org.apache.hadoop.hdfs.server.datanode.fsdataset.FsVolumeSpi;
|
||||||
|
import org.apache.hadoop.hdfs.server.datanode.metrics.DataNodeMetrics;
|
||||||
import org.apache.hadoop.hdfs.util.DataTransferThrottler;
|
import org.apache.hadoop.hdfs.util.DataTransferThrottler;
|
||||||
import org.apache.hadoop.io.IOUtils;
|
import org.apache.hadoop.io.IOUtils;
|
||||||
import org.apache.hadoop.util.Time;
|
import org.apache.hadoop.util.Time;
|
||||||
@ -81,6 +82,8 @@ void setConf(Conf conf) {
|
|||||||
*/
|
*/
|
||||||
private final DataNode datanode;
|
private final DataNode datanode;
|
||||||
|
|
||||||
|
private final DataNodeMetrics metrics;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A reference to the volume that we're scanning.
|
* A reference to the volume that we're scanning.
|
||||||
*/
|
*/
|
||||||
@ -300,6 +303,7 @@ public void handle(ExtendedBlock block, IOException e) {
|
|||||||
VolumeScanner(Conf conf, DataNode datanode, FsVolumeReference ref) {
|
VolumeScanner(Conf conf, DataNode datanode, FsVolumeReference ref) {
|
||||||
this.conf = conf;
|
this.conf = conf;
|
||||||
this.datanode = datanode;
|
this.datanode = datanode;
|
||||||
|
this.metrics = datanode.getMetrics();
|
||||||
this.ref = ref;
|
this.ref = ref;
|
||||||
this.volume = ref.getVolume();
|
this.volume = ref.getVolume();
|
||||||
ScanResultHandler handler;
|
ScanResultHandler handler;
|
||||||
@ -444,12 +448,14 @@ private long scanBlock(ExtendedBlock cblock, long bytesPerSec) {
|
|||||||
throttler.setBandwidth(bytesPerSec);
|
throttler.setBandwidth(bytesPerSec);
|
||||||
long bytesRead = blockSender.sendBlock(nullStream, null, throttler);
|
long bytesRead = blockSender.sendBlock(nullStream, null, throttler);
|
||||||
resultHandler.handle(block, null);
|
resultHandler.handle(block, null);
|
||||||
|
metrics.incrBlocksVerified();
|
||||||
return bytesRead;
|
return bytesRead;
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
resultHandler.handle(block, e);
|
resultHandler.handle(block, e);
|
||||||
} finally {
|
} finally {
|
||||||
IOUtils.cleanup(null, blockSender);
|
IOUtils.cleanup(null, blockSender);
|
||||||
}
|
}
|
||||||
|
metrics.incrBlockVerificationFailures();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user