/** * Check all column families in a region dir. * * @param regionDir * region directory * @throws IOException */ protected void checkRegionDir(Path regionDir) throws IOException { FileStatus[] cfs = null; try { cfs = fs.listStatus(regionDir, new FamilyDirFilter(fs)); } catch (FileNotFoundException fnfe) { // Hadoop 0.23+ listStatus semantics throws an exception if the path does not exist. LOG.warn("Region Directory " + regionDir + " does not exist. Likely due to concurrent split/compaction. Skipping."); missing.add(regionDir); return; } // Hadoop 1.0 listStatus does not throw an exception if the path does not exist. if (cfs.length == 0 && !fs.exists(regionDir)) { LOG.warn("Region Directory " + regionDir + " does not exist. Likely due to concurrent split/compaction. Skipping."); missing.add(regionDir); return; } for (FileStatus cfFs : cfs) { Path cfDir = cfFs.getPath(); checkColFamDir(cfDir); } }
/** * Checks all the mob files of a table. * @param regionDir The mob region directory * @throws IOException */ private void checkMobRegionDir(Path regionDir) throws IOException { if (!fs.exists(regionDir)) { return; } FileStatus[] hfs = null; try { hfs = fs.listStatus(regionDir, new FamilyDirFilter(fs)); } catch (FileNotFoundException fnfe) { // Hadoop 0.23+ listStatus semantics throws an exception if the path does not exist. LOG.warn("Mob directory " + regionDir + " does not exist. Likely the table is deleted. Skipping."); missedMobFiles.add(regionDir); return; } // Hadoop 1.0 listStatus does not throw an exception if the path does not exist. if (hfs.length == 0 && !fs.exists(regionDir)) { LOG.warn("Mob directory " + regionDir + " does not exist. Likely the table is deleted. Skipping."); missedMobFiles.add(regionDir); return; } for (FileStatus hfFs : hfs) { Path hf = hfFs.getPath(); checkMobColFamDir(hf); } }
/** * Check all column families in a region dir. * * @param regionDir * region directory * @throws IOException */ protected void checkRegionDir(Path regionDir) throws IOException { FileStatus[] statuses = null; try { statuses = fs.listStatus(regionDir); } catch (FileNotFoundException fnfe) { // Hadoop 0.23+ listStatus semantics throws an exception if the path does not exist. LOG.warn("Region Directory " + regionDir + " does not exist. Likely due to concurrent split/compaction. Skipping."); missing.add(regionDir); return; } List<FileStatus> cfs = FSUtils.filterFileStatuses(statuses, new FamilyDirFilter(fs)); // Hadoop 1.0 listStatus does not throw an exception if the path does not exist. if (cfs.isEmpty() && !fs.exists(regionDir)) { LOG.warn("Region Directory " + regionDir + " does not exist. Likely due to concurrent split/compaction. Skipping."); missing.add(regionDir); return; } for (FileStatus cfFs : cfs) { Path cfDir = cfFs.getPath(); checkColFamDir(cfDir); } }