public Path removeVolume(Path path) { String pathString = path.toString(); int eopi = endOfVolumeIndex(pathString, dir); if (eopi != -1) return new Path(pathString.substring(eopi + 1)); return null; } }
Path fullPath = new Path(defaultVolume.getBasePath(), fileType.getDirectory()); fullPath = new Path(fullPath, path);
public static String switchVolume(String path, FileType ft, List<Pair<Path,Path>> replacements) { if (replacements.size() == 0) { log.trace("Not switching volume because there are no replacements"); return null; } if (!path.contains(":")) { // ignore relative paths return null; } Path p = new Path(path); // removing slash because new Path("hdfs://nn1").equals(new Path("hdfs://nn1/")) evaluates to // false Path volume = removeTrailingSlash(ft.getVolume(p)); for (Pair<Path,Path> pair : replacements) { Path key = removeTrailingSlash(pair.getFirst()); if (key.equals(volume)) { String replacement = new Path(pair.getSecond(), ft.removeVolume(p)).toString(); log.trace("Replacing {} with {}", path, replacement); return replacement; } } log.trace("Could not find replacement for {} at {}", ft, path); return null; }
Path fullPath = new Path(defaultVolume.getBasePath(), fileType.getDirectory()); fullPath = new Path(fullPath, path);
public static String switchVolume(String path, FileType ft, List<Pair<Path,Path>> replacements) { if (replacements.size() == 0) { log.trace("Not switching volume because there are no replacements"); return null; } if (!path.contains(":")) { // ignore relative paths return null; } Path p = new Path(path); // removing slash because new Path("hdfs://nn1").equals(new Path("hdfs://nn1/")) evaluates to // false Path volume = removeTrailingSlash(ft.getVolume(p)); for (Pair<Path,Path> pair : replacements) { Path key = removeTrailingSlash(pair.getFirst()); if (key.equals(volume)) { String replacement = new Path(pair.getSecond(), ft.removeVolume(p)).toString(); log.trace("Replacing " + path + " with " + replacement); return replacement; } } log.trace("Could not find replacement for " + ft + " at " + path); return null; }
public static Path getRecoveryPath(VolumeManager fs, Path walPath) throws IOException { if (walPath.depth() >= 3 && walPath.toUri().getScheme() != null) { // its a fully qualified path String uuid = walPath.getName(); // drop uuid walPath = walPath.getParent(); // recovered 1.4 WALs won't have a server component if (!walPath.getName().equals(FileType.WAL.getDirectory())) { // drop server walPath = walPath.getParent(); } if (!walPath.getName().equals(FileType.WAL.getDirectory())) throw new IllegalArgumentException("Bad path " + walPath); // drop wal walPath = walPath.getParent(); walPath = new Path(walPath, FileType.RECOVERY.getDirectory()); walPath = new Path(walPath, uuid); return walPath; } throw new IllegalArgumentException("Bad path " + walPath); }
static Path extractSuffix(Path path) { String pstr = path.toString(); int index = pstr.lastIndexOf(FileType.TABLE.getDirectory()); if (index < 0) throw new IllegalArgumentException("Invalid table path " + pstr); try { Path parent = path.getParent().getParent(); if (!parent.getName().equals(FileType.TABLE.getDirectory()) && !parent.getParent().getName().equals(FileType.TABLE.getDirectory())) throw new IllegalArgumentException("Invalid table path " + pstr); } catch (NullPointerException npe) { throw new IllegalArgumentException("Invalid table path " + pstr); } return new Path(pstr.substring(index + FileType.TABLE.getDirectory().length() + 1)); }
private static String getLogURI(String logEntry) { Path ret = FileType.WAL.getVolume(new Path(logEntry)); if (ret == null) return "RELATIVE"; return ret.toString(); }
private static String getTableURI(String rootTabletDir) { Path ret = FileType.TABLE.getVolume(new Path(rootTabletDir)); if (ret == null) return "RELATIVE"; return ret.toString(); }
public Path removeVolume(Path path) { String pathString = path.toString(); int eopi = endOfVolumeIndex(pathString, dir); if (eopi != -1) return new Path(pathString.substring(eopi + 1)); return null; } }
public Path getVolume(Path path) { String pathString = path.toString(); int eopi = endOfVolumeIndex(pathString, dir); if (eopi != -1) return new Path(pathString.substring(0, eopi + 1)); return null; }
public static Path getRecoveryPath(Path walPath) { if (walPath.depth() >= 3 && walPath.toUri().getScheme() != null) { // its a fully qualified path String uuid = walPath.getName(); // drop uuid walPath = walPath.getParent(); // recovered 1.4 WALs won't have a server component if (!walPath.getName().equals(FileType.WAL.getDirectory())) { // drop server walPath = walPath.getParent(); } if (!walPath.getName().equals(FileType.WAL.getDirectory())) throw new IllegalArgumentException("Bad path " + walPath); // drop wal walPath = walPath.getParent(); walPath = new Path(walPath, FileType.RECOVERY.getDirectory()); walPath = new Path(walPath, uuid); return walPath; } throw new IllegalArgumentException("Bad path " + walPath); }
static Path extractSuffix(Path path) { String pstr = path.toString(); int index = pstr.lastIndexOf(FileType.TABLE.getDirectory()); if (index < 0) throw new IllegalArgumentException("Invalid table path " + pstr); try { Path parent = path.getParent().getParent(); if (!parent.getName().equals(FileType.TABLE.getDirectory()) && !parent.getParent().getName().equals(FileType.TABLE.getDirectory())) throw new IllegalArgumentException("Invalid table path " + pstr); } catch (NullPointerException npe) { throw new IllegalArgumentException("Invalid table path " + pstr); } return new Path(pstr.substring(index + FileType.TABLE.getDirectory().length() + 1)); }
private static String getTableURI(String rootTabletDir) { Path ret = FileType.TABLE.getVolume(new Path(rootTabletDir)); if (ret == null) return "RELATIVE"; return ret.toString(); }
public Path getVolume(Path path) { String pathString = path.toString(); int eopi = endOfVolumeIndex(pathString, dir); if (eopi != -1) return new Path(pathString.substring(0, eopi + 1)); return null; }
private static String getLogURI(String logEntry) { Path ret = FileType.WAL.getVolume(new Path(logEntry)); if (ret == null) return "RELATIVE"; return ret.toString(); }