List of usage examples for org.apache.hadoop.fs FileStatus isDirectory
public boolean isDirectory()
From source file:com.cloudera.oryx.common.servcomp.Store.java
License:Open Source License
/** * Lists contents of a directory. For file systems without a notion of directory, this lists prefixes that * have the same prefix as the given prefix, but excludes "directories" (keys with same prefix, but followed * by more path elements). Results are returned in lexicographically sorted order. * * @param prefix directory to list//from w ww . j a v a 2s .co m * @param files if true, only list files, not directories * @return list of keys representing directory contents */ public List<String> list(String prefix, boolean files) throws IOException { Preconditions.checkNotNull(prefix); Path path = Namespaces.toPath(prefix); if (!fs.exists(path)) { return Collections.emptyList(); } Preconditions.checkArgument(fs.getFileStatus(path).isDirectory(), "Not a directory: %s", path); FileStatus[] statuses = fs.listStatus(path, new FilesOrDirsPathFilter(fs, files)); String prefixString = Namespaces.get().getPrefix(); List<String> result = Lists.newArrayListWithCapacity(statuses.length); for (FileStatus fileStatus : statuses) { String listPath = fileStatus.getPath().toString(); Preconditions.checkState(listPath.startsWith(prefixString), "%s doesn't start with %s", listPath, prefixString); if (!listPath.endsWith("_SUCCESS")) { listPath = listPath.substring(prefixString.length()); if (fileStatus.isDirectory() && !listPath.endsWith("/")) { listPath += "/"; } result.add(listPath); } } Collections.sort(result); return result; }
From source file:com.collective.celos.ci.testing.fixtures.create.OutputFixDirFromHdfsCreator.java
License:Apache License
private FixFsObject read(Path path, CelosCiContext context) throws Exception { FileStatus fileStatus = context.getFileSystem().getFileStatus(path); if (fileStatus.isDirectory()) { Map<String, FixFsObject> content = Maps.newHashMap(); FileStatus[] statuses = context.getFileSystem().listStatus(fileStatus.getPath()); for (int i = 0; i < statuses.length; i++) { FileStatus childStatus = statuses[i]; FixFsObject fixObject = read(childStatus.getPath(), context); content.put(childStatus.getPath().getName(), fixObject); }//w w w .j ava 2 s . c o m return new FixDir(content); } else { return new FixFile(context.getFileSystem().open(fileStatus.getPath())); } }
From source file:com.conductor.s3.S3InputFormatUtils.java
License:Apache License
/** * Converts the {@link org.apache.hadoop.fs.FileStatus}s to {@link org.apache.hadoop.mapred.InputSplit}s (MRV1 API). * <p>// w ww . jav a 2 s . co m * This is taken directly from {@link org.apache.hadoop.mapreduce.lib.input.FileInputFormat}, less any file system * operations that do not make sense when using {@code S3}. * * @param files * the files to convert * @param minSize * the minimum size of the splits * @param maxSize * the maximum size of the splits * @return the splits. */ static List<InputSplit> convertToInputSplitsMRV1(final Iterable<FileStatus> files, final long minSize, final long maxSize) { final List<InputSplit> splits = Lists.newArrayList(); for (final FileStatus file : files) { // check for valid data for this input format checkArgument(!file.isDirectory(), "Cannot pass directories to this method!"); final String path = file.getPath().toString(); checkArgument(path.startsWith("s3:") || path.startsWith("s3n:"), "Expected S3 input"); // create splits out of file final long length = file.getLen(); if (length > 0) { long blockSize = file.getBlockSize(); long splitSize = computeSplitSize(blockSize, minSize, maxSize); long bytesRemaining = length; while (((double) bytesRemaining) / splitSize > SPLIT_SLOP) { splits.add(new FileSplit(file.getPath(), length - bytesRemaining, splitSize, S3_SPLIT_HOST)); bytesRemaining -= splitSize; } if (bytesRemaining != 0) { splits.add( new FileSplit(file.getPath(), length - bytesRemaining, bytesRemaining, S3_SPLIT_HOST)); } } } return splits; }
From source file:com.continuent.tungsten.common.file.HdfsFileIO.java
License:Open Source License
/** * {@inheritDoc}// ww w .jav a 2 s. c o m * * @see com.continuent.tungsten.common.file.FileIO#isDirectory(com.continuent.tungsten.common.file.FilePath) */ @Override public boolean isDirectory(FilePath path) { FileStatus fileStatus = getStatus(path); return fileStatus.isDirectory(); }
From source file:com.conversantmedia.mapreduce.tool.BaseTool.java
License:Apache License
protected List<FileStatus> getInputFiles(Path input) throws IOException { FileSystem fs = FileSystem.get(getConf()); List<FileStatus> status = new ArrayList<>(); if (fs.exists(input)) { FileStatus inputStatus = fs.getFileStatus(input); if (inputStatus.isDirectory()) { // Move all files under this directory status = Arrays.asList(fs.listStatus(input)); } else {/*from w ww . j a va2 s. c o m*/ status.add(inputStatus); } } // Must be a glob path else { FileStatus[] statusAry = fs.globStatus(input); status.addAll(Arrays.asList(statusAry)); } return status; }
From source file:com.datatorrent.lib.io.fs.AbstractFileSplitter.java
License:Apache License
/** * Creates file-metadata and populates no. of blocks in the metadata. * * @param fileInfo file information/*from www . jav a2 s . co m*/ * @return file-metadata * @throws IOException */ protected FileMetadata buildFileMetadata(FileInfo fileInfo) throws IOException { LOG.debug("file {}", fileInfo.getFilePath()); FileMetadata fileMetadata = createFileMetadata(fileInfo); LOG.debug("fileMetadata {}", fileMetadata); Path path = new Path(fileInfo.getFilePath()); fileMetadata.setFileName(path.getName()); FileStatus status = getFileStatus(path); fileMetadata.setDirectory(status.isDirectory()); fileMetadata.setFileLength(status.getLen()); if (fileInfo.getDirectoryPath() == null) { // Direct filename is given as input. fileMetadata.setRelativePath(status.getPath().getName()); } else { String relativePath = getRelativePathWithFolderName(fileInfo); fileMetadata.setRelativePath(relativePath); } if (!status.isDirectory()) { int noOfBlocks = (int) ((status.getLen() / blockSize) + (((status.getLen() % blockSize) == 0) ? 0 : 1)); if (fileMetadata.getDataOffset() >= status.getLen()) { noOfBlocks = 0; } fileMetadata.setNumberOfBlocks(noOfBlocks); populateBlockIds(fileMetadata); } return fileMetadata; }
From source file:com.datatorrent.stram.client.FSAgent.java
License:Apache License
public List<String> listFiles(String dir) throws IOException { List<String> files = new ArrayList<String>(); Path path = new Path(dir); FileStatus fileStatus = fileSystem.getFileStatus(path); if (!fileStatus.isDirectory()) { throw new FileNotFoundException("Cannot read directory " + dir); }/* www . j a va 2 s .c om*/ RemoteIterator<LocatedFileStatus> it = fileSystem.listFiles(path, false); while (it.hasNext()) { LocatedFileStatus lfs = it.next(); files.add(lfs.getPath().getName()); } return files; }
From source file:com.datatorrent.stram.client.FSAgent.java
License:Apache License
public List<LocatedFileStatus> listFilesInfo(String dir) throws IOException { List<LocatedFileStatus> files = new ArrayList<LocatedFileStatus>(); Path path = new Path(dir); FileStatus fileStatus = fileSystem.getFileStatus(path); if (!fileStatus.isDirectory()) { throw new FileNotFoundException("Cannot read directory " + dir); }//from w w w. j a va 2 s . c o m RemoteIterator<LocatedFileStatus> it = fileSystem.listFiles(path, false); while (it.hasNext()) { LocatedFileStatus lfs = it.next(); files.add(lfs); } return files; }
From source file:com.datatorrent.stram.client.RecordingsAgent.java
License:Apache License
public List<RecordingInfo> getRecordingInfo(String appId) { List<RecordingInfo> result = new ArrayList<RecordingInfo>(); String dir = getRecordingsDirectory(appId); if (dir == null) { return result; }// w w w . ja va2s.c om Path path = new Path(dir); try { FileStatus fileStatus = stramAgent.getFileSystem().getFileStatus(path); if (!fileStatus.isDirectory()) { return result; } RemoteIterator<LocatedFileStatus> ri = stramAgent.getFileSystem().listLocatedStatus(path); while (ri.hasNext()) { LocatedFileStatus lfs = ri.next(); if (lfs.isDirectory()) { try { String opId = lfs.getPath().getName(); result.addAll(getRecordingInfo(appId, opId)); } catch (NumberFormatException ex) { // ignore } } } } catch (IOException ex) { LOG.warn("Got exception when getting recording info", ex); return result; } return result; }
From source file:com.datatorrent.stram.client.RecordingsAgent.java
License:Apache License
private List<RecordingInfo> getRecordingInfoHelper(String appId, String opId, Set<String> containers) { List<RecordingInfo> result = new ArrayList<RecordingInfo>(); String dir = getRecordingsDirectory(appId, opId); if (dir == null) { return result; }/* w ww.ja v a 2 s . co m*/ Path path = new Path(dir); try { FileStatus fileStatus = stramAgent.getFileSystem().getFileStatus(path); if (!fileStatus.isDirectory()) { return result; } RemoteIterator<LocatedFileStatus> ri = stramAgent.getFileSystem().listLocatedStatus(path); while (ri.hasNext()) { LocatedFileStatus lfs = ri.next(); if (lfs.isDirectory()) { try { String id = lfs.getPath().getName(); RecordingInfo recordingInfo = getRecordingInfoHelper(appId, opId, id, containers); if (recordingInfo != null) { result.add(recordingInfo); } } catch (NumberFormatException ex) { // ignore } } } } catch (IOException ex) { LOG.warn("Got exception when getting recording info", ex); return result; } return result; }