Hadoop 2.4.1
2 namenodes(ha), 3 datanodes.
I want to find failed volumes. but getVolumeFailures() always return zero.
How do i find volume failure using java code???
Configuration conf = getConf(configPath);
FileSystem fs = null;
try {
fs = FileSystem.get(conf);
if (!(fs instanceof DistributedFileSystem)) {
System.err.println("FileSystem is " +
fs.getUri());
return ;
}
DistributedFileSystem dfs = (DistributedFileSystem) fs;
DatanodeInfo[] nodes =
dfs.getDataNodeStats(DatanodeReportType.ALL);
for(DatanodeInfo node : nodes)
{
if( node instanceof DatanodeID )
{
DatanodeDescriptor desc = new
DatanodeDescriptor(node);
// getVolumeFailures() always return
zero.
System.out.println(desc.getVolumeFailures());
}
}
} catch (IOException ioe) {
System.err.println("FileSystem is inaccessible due
to:\n" + StringUtils.stringifyException(ioe));
return ;
}