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 ;
                }

Reply via email to