use of org.apache.crail.CrailDirectory in project incubator-crail by apache.
the class CrailFsck method blockStatistics.
public void blockStatistics(String filename) throws Exception {
HashMap<String, AtomicInteger> stats = new HashMap<String, AtomicInteger>();
CrailConfiguration conf = new CrailConfiguration();
CrailStore fs = CrailStore.newInstance(conf);
CrailNode node = fs.lookup(filename).get();
if (node.getType() == CrailNodeType.DIRECTORY) {
CrailDirectory directory = node.asDirectory();
Iterator<String> iter = directory.listEntries();
while (iter.hasNext()) {
String path = iter.next();
CrailFile child = fs.lookup(path).get().asFile();
walkBlocks(stats, fs, child.getPath(), 0, child.getCapacity());
}
} else if (node.getType() == CrailNodeType.DATAFILE) {
CrailFile file = node.asFile();
walkBlocks(stats, fs, file.getPath(), 0, file.getCapacity());
} else if (node.getType() == CrailNodeType.MULTIFILE) {
CrailMultiFile directory = node.asMultiFile();
Iterator<String> iter = directory.listEntries();
while (iter.hasNext()) {
String path = iter.next();
CrailFile child = fs.lookup(path).get().asFile();
walkBlocks(stats, fs, child.getPath(), 0, child.getCapacity());
}
}
printStats(stats);
fs.close();
}
use of org.apache.crail.CrailDirectory in project incubator-crail by apache.
the class CrailHadoopFileSystem method mkdirs.
@Override
public boolean mkdirs(Path path, FsPermission permission) throws IOException {
try {
CrailDirectory file = dfs.create(path.toUri().getRawPath(), CrailNodeType.DIRECTORY, CrailStorageClass.PARENT, CrailLocationClass.DEFAULT, true).get().asDirectory();
file.syncDir();
return true;
} catch (Exception e) {
if (e.getMessage().contains(RpcErrors.messages[RpcErrors.ERR_PARENT_MISSING])) {
Path parent = path.getParent();
mkdirs(parent);
return mkdirs(path);
} else if (e.getMessage().contains(RpcErrors.messages[RpcErrors.ERR_FILE_EXISTS])) {
return true;
} else {
throw new IOException(e);
}
}
}
use of org.apache.crail.CrailDirectory in project incubator-crail by apache.
the class CrailHDFS method mkdir.
@Override
public void mkdir(Path path, FsPermission permission, boolean createParent) throws AccessControlException, FileAlreadyExistsException, FileNotFoundException, UnresolvedLinkException, IOException {
try {
CrailDirectory file = dfs.create(path.toUri().getRawPath(), CrailNodeType.DIRECTORY, CrailStorageClass.PARENT, CrailLocationClass.DEFAULT, true).get().asDirectory();
file.syncDir();
} catch (Exception e) {
if (e.getMessage().contains(RpcErrors.messages[RpcErrors.ERR_PARENT_MISSING])) {
Path parent = path.getParent();
mkdir(parent, permission, createParent);
mkdir(path, permission, createParent);
} else if (e.getMessage().contains(RpcErrors.messages[RpcErrors.ERR_FILE_EXISTS])) {
} else {
throw new IOException(e);
}
}
}
Aggregations