List of usage examples for org.apache.hadoop.fs FileSystem getFileStatus
public abstract FileStatus getFileStatus(Path f) throws IOException;
From source file:com.fullcontact.cassandra.io.util.RandomAccessReader.java
License:Apache License
protected RandomAccessReader(Path file, int bufferSize, boolean skipIOCache, PoolingSegmentedFile owner, FileSystem fs) throws FileNotFoundException { inputPath = file;//from w w w .j a v a 2 s. c o m try { inputFileStatus = fs.getFileStatus(inputPath); } catch (IOException e) { throw new RuntimeException(e); } this.fs = fs; try { this.input = fs.open(file); } catch (IOException e) { throw new RuntimeException(e); } this.owner = owner; filePath = file.toString(); // allocating required size of the buffer if (bufferSize <= 0) throw new IllegalArgumentException("bufferSize must be positive"); buffer = new byte[bufferSize]; this.skipIOCache = skipIOCache; // we can cache file length in read-only mode try { fileLength = fs.getFileStatus(file).getLen(); } catch (IOException e) { throw new FSReadError(e, filePath); } validBufferBytes = -1; // that will trigger reBuffer() on demand by read/seek operations }
From source file:com.fullcontact.sstable.index.SSTableIndexIndexer.java
License:Apache License
public void index(final Path sstablePath) throws IOException { final FileSystem fileSystem = FileSystem.get(URI.create(sstablePath.toString()), configuration); final FileStatus fileStatus = fileSystem.getFileStatus(sstablePath); if (fileStatus.isDir()) { LOG.info("SSTable Indexing directory {}", sstablePath); final FileStatus[] statuses = fileSystem.listStatus(sstablePath); for (final FileStatus childStatus : statuses) { index(childStatus.getPath()); }/*from ww w . j a va 2 s . co m*/ } else if (sstablePath.toString().endsWith(SST_EXTENSION)) { final Path sstableIndexPath = new Path(sstablePath.toString() + SSTableIndexIndex.SSTABLE_INDEX_SUFFIX); if (fileSystem.exists(sstableIndexPath)) { LOG.info("Skipping as SSTable index file already exists for {}", sstablePath); } else { // Kick a thread for the index. final ListenableFuture<IndexRequest> indexFuture = service.submit(new Callable<IndexRequest>() { @Override public IndexRequest call() throws Exception { final long startTime = System.currentTimeMillis(); final long fileSize = fileStatus.getLen(); LOG.info("Indexing SSTABLE Indexing file {}, size {} GB...", sstablePath, decimalFormat.format(fileSize / (1024.0 * 1024.0 * 1024.0))); indexSingleFile(fileSystem, sstablePath); return new IndexRequest(sstableIndexPath, startTime, fileSize); } }); Futures.addCallback(indexFuture, new FutureCallback<IndexRequest>() { public void onSuccess(final IndexRequest indexRequest) { long indexSize = 0; try { indexSize = fileSystem.getFileStatus(indexRequest.getIndexPath()).getLen(); } catch (IOException e) { LOG.error("Error getting file status for index path: {}", indexRequest.getIndexPath()); } final double elapsed = (System.currentTimeMillis() - indexRequest.getStartTime()) / 1000.0; LOG.info("Completed SSTABLE Indexing in {} seconds ({} MB/s). Index size is {} KB.", decimalFormat.format(elapsed), decimalFormat.format(indexRequest.getFileSize() / (1024.0 * 1024.0 * elapsed)), decimalFormat.format(indexSize / 1024.0)); } public void onFailure(Throwable e) { LOG.error("Failed to index.", e); } }); } } }
From source file:com.gemstone.gemfire.cache.hdfs.internal.hoplog.HdfsSortedOplogOrganizer.java
License:Apache License
/** * Returns a list of of hoplogs present in the bucket's directory, expected to be called during * hoplog set initialization//w ww . j av a2s . com */ List<Hoplog> identifyAndLoadSortedOplogs(boolean countSize) throws IOException { FileSystem fs = store.getFileSystem(); if (!fs.exists(bucketPath)) { return new ArrayList<Hoplog>(); } FileStatus allFiles[] = fs.listStatus(bucketPath); ArrayList<FileStatus> validFiles = new ArrayList<FileStatus>(); for (FileStatus file : allFiles) { // All hoplog files contribute to disk usage Matcher matcher = HOPLOG_NAME_PATTERN.matcher(file.getPath().getName()); if (!matcher.matches()) { // not a hoplog continue; } // account for the disk used by this file if (countSize) { incrementDiskUsage(file.getLen()); } // All valid hoplog files must match the regex matcher = SORTED_HOPLOG_PATTERN.matcher(file.getPath().getName()); if (matcher.matches()) { validFiles.add(file); } } FileStatus[] markers = getExpiryMarkers(); FileStatus[] validHoplogs = filterValidHoplogs(validFiles.toArray(new FileStatus[validFiles.size()]), markers); ArrayList<Hoplog> results = new ArrayList<Hoplog>(); if (validHoplogs == null || validHoplogs.length == 0) { return results; } for (int i = 0; i < validHoplogs.length; i++) { // Skip directories if (validHoplogs[i].isDirectory()) { continue; } final Path p = validHoplogs[i].getPath(); // skip empty file if (fs.getFileStatus(p).getLen() <= 0) { continue; } Hoplog hoplog = new HFileSortedOplog(store, p, store.getBlockCache(), stats, store.getStats()); results.add(hoplog); } return results; }
From source file:com.github.hdl.tensorflow.yarn.app.TFAmContainer.java
License:Apache License
public void addToLocalResources(FileSystem fs, Path dst, String fileDstPath, Map<String, LocalResource> localResources) throws IOException { FileStatus scFileStatus = fs.getFileStatus(dst); LocalResource scRsrc = LocalResource.newInstance(URL.fromURI(dst.toUri()), LocalResourceType.FILE, LocalResourceVisibility.APPLICATION, scFileStatus.getLen(), scFileStatus.getModificationTime()); localResources.put(fileDstPath, scRsrc); }
From source file:com.github.hdl.tensorflow.yarn.app.TFContainer.java
License:Apache License
public void addToLocalResources(FileSystem fs, Path dst, String fileDstPath, Map<String, LocalResource> localResources) throws IOException { FileStatus scFileStatus = fs.getFileStatus(dst); LOG.info("Path " + dst.toString() + "->" + " " + fileDstPath); LocalResource scRsrc = LocalResource.newInstance(URL.fromURI(dst.toUri()), LocalResourceType.FILE, LocalResourceVisibility.APPLICATION, scFileStatus.getLen(), scFileStatus.getModificationTime()); localResources.put(fileDstPath, scRsrc); }
From source file:com.github.hdl.tensorflow.yarn.app.TFContainer.java
License:Apache License
public void addToLocalResources(FileSystem fs, String fileSrcPath, String fileDstPath, String appId, Map<String, LocalResource> localResources, String resources) throws IOException { execCmd("pwd"); execCmd("ls -l"); String suffix = appName + "/" + appId + "/" + fileDstPath; Path dst = new Path(fs.getHomeDirectory(), suffix); LOG.info("copy: " + fileSrcPath + " ===> " + dst.toString()); if (fileSrcPath == null) { FSDataOutputStream ostream = null; try {/*from w w w . ja v a 2 s . c om*/ ostream = FileSystem.create(fs, dst, new FsPermission((short) 0710)); ostream.writeUTF(resources); } finally { IOUtils.closeQuietly(ostream); } } else { fs.copyFromLocalFile(new Path(fileSrcPath), dst); } FileStatus scFileStatus = fs.getFileStatus(dst); LocalResource scRsrc = LocalResource.newInstance(URL.fromURI(dst.toUri()), LocalResourceType.FILE, LocalResourceVisibility.APPLICATION, scFileStatus.getLen(), scFileStatus.getModificationTime()); localResources.put(fileDstPath, scRsrc); }
From source file:com.github.joshelser.accumulo.DelimitedIngest.java
License:Apache License
private List<Path> convertInputToPaths() throws IOException { List<String> inputs = args.getInput(); List<Path> paths = new ArrayList<>(inputs.size()); for (String input : inputs) { Path p = new Path(input); FileSystem fs = p.getFileSystem(conf); FileStatus fstat = fs.getFileStatus(p); if (fstat.isFile()) { paths.add(p);// w w w .j av a2 s .c om } else if (fstat.isDirectory()) { for (FileStatus child : fs.listStatus(p)) { if (child.isFile()) { paths.add(child.getPath()); } } } else { throw new IllegalStateException("Unable to handle that which is not file nor directory: " + p); } } return paths; }
From source file:com.github.sadikovi.hadoop.riff.RiffOutputCommitter.java
License:Open Source License
/** * Write Riff metadata file.//from w w w . j a v a 2 s. com * @param conf hadoop configuration * @param outputPath root path for output * @throws IOException */ private static void writeMetadataFile(Configuration conf, Path outputPath) throws IOException { // Right now, merging of the schema is not supported as we do not support schema evolution or // merge. At this point, just find the first file of riff format and write metadata for it. FileSystem fs = outputPath.getFileSystem(conf); FileStatus status = fs.getFileStatus(outputPath); List<FileStatus> partFiles = listFiles(fs, status, true); if (partFiles.isEmpty()) { LOG.warn("Could not find any part files for path {}, metadata is ignored", outputPath); } else { Metadata.MetadataWriter writer = Riff.metadataWriter(fs, conf, partFiles.get(0).getPath()); writer.writeMetadataFile(outputPath); LOG.info("Finished writing metadata file for {}", outputPath); } }
From source file:com.github.sadikovi.riff.FileReader.java
License:Open Source License
FileReader(FileSystem fs, Configuration conf, Path path) throws IOException { this(fs, conf, fs.getFileStatus(path)); }
From source file:com.google.mr4c.content.HDFSContentFactory.java
License:Open Source License
public long getContentLength(URI uri) throws IOException { Path path = toPath(uri);/* w w w .ja v a2s. co m*/ FileSystem fs = FileSystem.get(uri, m_config); FileStatus file = fs.getFileStatus(path); return file.getLen(); }