Class CephFSUnderFileSystem

  • All Implemented Interfaces:
    alluxio.underfs.AsyncUfsClient, alluxio.underfs.AtomicFileOutputStreamCallback, alluxio.underfs.UnderFileSystem, java.io.Closeable, java.lang.AutoCloseable

    @ThreadSafe
    public class CephFSUnderFileSystem
    extends alluxio.underfs.ConsistentUnderFileSystem
    implements alluxio.underfs.AtomicFileOutputStreamCallback
    CephFS UnderFileSystem implementation.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface alluxio.underfs.UnderFileSystem

        alluxio.underfs.UnderFileSystem.Factory, alluxio.underfs.UnderFileSystem.SpaceType
    • Field Summary

      • Fields inherited from class alluxio.underfs.BaseUnderFileSystem

        EMPTY_ACL, mUfsConf, mUri
    • Constructor Summary

      Constructors 
      Constructor Description
      CephFSUnderFileSystem​(alluxio.AlluxioURI ufsUri, com.ceph.fs.CephMount mount, alluxio.underfs.UnderFileSystemConfiguration conf)
      Constructs a new CephFS UnderFileSystem.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void cleanup()  
      void close()  
      void connectFromMaster​(java.lang.String host)  
      void connectFromWorker​(java.lang.String host)  
      java.io.OutputStream create​(java.lang.String path, alluxio.underfs.options.CreateOptions options)  
      java.io.OutputStream createDirect​(java.lang.String path, alluxio.underfs.options.CreateOptions options)  
      static CephFSUnderFileSystem createInstance​(alluxio.AlluxioURI ufsUri, alluxio.underfs.UnderFileSystemConfiguration conf)
      Factory method to constructs a new CephFS UnderFileSystem instance.
      boolean deleteDirectory​(java.lang.String path, alluxio.underfs.options.DeleteOptions options)  
      boolean deleteFile​(java.lang.String path)  
      boolean exists​(java.lang.String path)  
      long getBlockSizeByte​(java.lang.String path)  
      alluxio.underfs.UfsDirectoryStatus getDirectoryStatus​(java.lang.String path)  
      java.util.List<java.lang.String> getFileLocations​(java.lang.String path)  
      java.util.List<java.lang.String> getFileLocations​(java.lang.String path, alluxio.underfs.options.FileLocationOptions options)  
      alluxio.underfs.UfsFileStatus getFileStatus​(java.lang.String path, alluxio.underfs.options.GetStatusOptions options)
      Gets stat information on a file.
      long getSpace​(java.lang.String path, alluxio.underfs.UnderFileSystem.SpaceType type)  
      alluxio.underfs.UfsStatus getStatus​(java.lang.String path, alluxio.underfs.options.GetStatusOptions options)  
      java.lang.String getUnderFSType()  
      boolean isDirectory​(java.lang.String path)  
      boolean isFile​(java.lang.String path)  
      boolean isSeekable()  
      alluxio.underfs.UfsStatus[] listStatus​(java.lang.String path)
      Each string is a name rather than a complete path.
      boolean mkdirs​(java.lang.String path, alluxio.underfs.options.MkdirsOptions options)  
      java.io.InputStream open​(java.lang.String path, alluxio.underfs.options.OpenOptions options)  
      alluxio.PositionReader openPositionRead​(java.lang.String path, long fileLength)  
      boolean renameDirectory​(java.lang.String src, java.lang.String dst)  
      boolean renameFile​(java.lang.String src, java.lang.String dst)  
      boolean renameRenamableDirectory​(java.lang.String src, java.lang.String dst)  
      boolean renameRenamableFile​(java.lang.String src, java.lang.String dst)  
      void setMode​(java.lang.String path, short mode)  
      void setOwner​(java.lang.String path, java.lang.String user, java.lang.String group)  
      boolean supportsFlush()  
      • Methods inherited from class alluxio.underfs.ConsistentUnderFileSystem

        createNonexistingFile, createNonexistingFile, deleteExistingDirectory, deleteExistingDirectory, deleteExistingFile, getExistingDirectoryStatus, getExistingFileStatus, getExistingStatus, isExistingDirectory, openExistingFile, openExistingFile
      • Methods inherited from class alluxio.underfs.BaseUnderFileSystem

        create, deleteDirectory, getAclPair, getActiveSyncInfo, getConfiguration, getFingerprint, getOperationMode, getParsedFingerprint, getParsedFingerprint, getPhysicalStores, isObjectStorage, listStatus, listStatusIterable, mkdirs, open, performListingAsync, resolveUri, setAclEntries, startActiveSyncPolling, startSync, stopActiveSyncPolling, stopSync, supportsActiveSync, validatePath
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface alluxio.underfs.AsyncUfsClient

        performListingAsync
      • Methods inherited from interface alluxio.underfs.UnderFileSystem

        create, createNonexistingFile, createNonexistingFile, deleteDirectory, deleteExistingDirectory, deleteExistingDirectory, deleteExistingFile, getAclPair, getActiveSyncInfo, getConfiguration, getExistingDirectoryStatus, getExistingFileStatus, getExistingStatus, getFileStatus, getFingerprint, getOperationMode, getParsedFingerprint, getParsedFingerprint, getPhysicalStores, getStatus, getTemporaryToken, isExistingDirectory, isObjectStorage, isTemporaryConnectionToken, listStatus, listStatuses, listStatusIterable, mkdirs, open, openExistingFile, openExistingFile, refreshTemporaryToken, resolveUri, setAclEntries, setTemporaryTokenRefreshContext, startActiveSyncPolling, startSync, stopActiveSyncPolling, stopSync, supportsActiveSync
    • Constructor Detail

      • CephFSUnderFileSystem

        public CephFSUnderFileSystem​(alluxio.AlluxioURI ufsUri,
                                     com.ceph.fs.CephMount mount,
                                     alluxio.underfs.UnderFileSystemConfiguration conf)
        Constructs a new CephFS UnderFileSystem.
        Parameters:
        ufsUri - the AlluxioURI for this UFS
        mount - CephMount instance
        conf - the configuration for this UFS
    • Method Detail

      • createInstance

        public static CephFSUnderFileSystem createInstance​(alluxio.AlluxioURI ufsUri,
                                                           alluxio.underfs.UnderFileSystemConfiguration conf)
                                                    throws java.io.IOException
        Factory method to constructs a new CephFS UnderFileSystem instance.
        Parameters:
        ufsUri - the AlluxioURI for this UFS
        conf - the configuration for Hadoop
        Returns:
        a new CephFS UnderFileSystem instance
        Throws:
        java.io.IOException
      • getUnderFSType

        public java.lang.String getUnderFSType()
        Specified by:
        getUnderFSType in interface alluxio.underfs.UnderFileSystem
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class alluxio.underfs.BaseUnderFileSystem
        Throws:
        java.io.IOException
      • create

        public java.io.OutputStream create​(java.lang.String path,
                                           alluxio.underfs.options.CreateOptions options)
                                    throws java.io.IOException
        Specified by:
        create in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • cleanup

        public void cleanup()
                     throws java.io.IOException
        Specified by:
        cleanup in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • createDirect

        public java.io.OutputStream createDirect​(java.lang.String path,
                                                 alluxio.underfs.options.CreateOptions options)
                                          throws java.io.IOException
        Specified by:
        createDirect in interface alluxio.underfs.AtomicFileOutputStreamCallback
        Throws:
        java.io.IOException
      • deleteDirectory

        public boolean deleteDirectory​(java.lang.String path,
                                       alluxio.underfs.options.DeleteOptions options)
                                throws java.io.IOException
        Specified by:
        deleteDirectory in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • deleteFile

        public boolean deleteFile​(java.lang.String path)
                           throws java.io.IOException
        Specified by:
        deleteFile in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • exists

        public boolean exists​(java.lang.String path)
                       throws java.io.IOException
        Specified by:
        exists in interface alluxio.underfs.UnderFileSystem
        Overrides:
        exists in class alluxio.underfs.BaseUnderFileSystem
        Throws:
        java.io.IOException
      • getBlockSizeByte

        public long getBlockSizeByte​(java.lang.String path)
                              throws java.io.IOException
        Specified by:
        getBlockSizeByte in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • getDirectoryStatus

        public alluxio.underfs.UfsDirectoryStatus getDirectoryStatus​(java.lang.String path)
                                                              throws java.io.IOException
        Specified by:
        getDirectoryStatus in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • getStatus

        public alluxio.underfs.UfsStatus getStatus​(java.lang.String path,
                                                   alluxio.underfs.options.GetStatusOptions options)
                                            throws java.io.IOException
        Specified by:
        getStatus in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • getFileLocations

        public java.util.List<java.lang.String> getFileLocations​(java.lang.String path)
                                                          throws java.io.IOException
        Specified by:
        getFileLocations in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • getFileLocations

        @Nullable
        public java.util.List<java.lang.String> getFileLocations​(java.lang.String path,
                                                                 alluxio.underfs.options.FileLocationOptions options)
                                                          throws java.io.IOException
        Specified by:
        getFileLocations in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • getFileStatus

        public alluxio.underfs.UfsFileStatus getFileStatus​(java.lang.String path,
                                                           alluxio.underfs.options.GetStatusOptions options)
                                                    throws java.io.IOException
        Gets stat information on a file. This does not fill owner or group, as Ceph's support for these is a bit different.
        Specified by:
        getFileStatus in interface alluxio.underfs.UnderFileSystem
        Parameters:
        path - The path to stat
        options - method options
        Returns:
        FileStatus object containing the stat information
        Throws:
        java.io.FileNotFoundException - if the path could not be resolved
        java.io.IOException
      • getSpace

        public long getSpace​(java.lang.String path,
                             alluxio.underfs.UnderFileSystem.SpaceType type)
                      throws java.io.IOException
        Specified by:
        getSpace in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • isDirectory

        public boolean isDirectory​(java.lang.String path)
                            throws java.io.IOException
        Specified by:
        isDirectory in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • isFile

        public boolean isFile​(java.lang.String path)
                       throws java.io.IOException
        Specified by:
        isFile in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • listStatus

        @Nullable
        public alluxio.underfs.UfsStatus[] listStatus​(java.lang.String path)
                                               throws java.io.IOException
        Each string is a name rather than a complete path.
        Specified by:
        listStatus in interface alluxio.underfs.UnderFileSystem
        Parameters:
        path - the path to list
        Returns:
        An array with the statuses of the files and directories in the directory denoted by this path. The array will be empty if the directory is empty. Returns null if this path does not denote a directory
        Throws:
        java.io.IOException
      • connectFromMaster

        public void connectFromMaster​(java.lang.String host)
                               throws java.io.IOException
        Specified by:
        connectFromMaster in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • connectFromWorker

        public void connectFromWorker​(java.lang.String host)
                               throws java.io.IOException
        Specified by:
        connectFromWorker in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • mkdirs

        public boolean mkdirs​(java.lang.String path,
                              alluxio.underfs.options.MkdirsOptions options)
                       throws java.io.IOException
        Specified by:
        mkdirs in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • open

        public java.io.InputStream open​(java.lang.String path,
                                        alluxio.underfs.options.OpenOptions options)
                                 throws java.io.IOException
        Specified by:
        open in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • openPositionRead

        public alluxio.PositionReader openPositionRead​(java.lang.String path,
                                                       long fileLength)
        Specified by:
        openPositionRead in interface alluxio.underfs.UnderFileSystem
      • renameDirectory

        public boolean renameDirectory​(java.lang.String src,
                                       java.lang.String dst)
                                throws java.io.IOException
        Specified by:
        renameDirectory in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • renameFile

        public boolean renameFile​(java.lang.String src,
                                  java.lang.String dst)
                           throws java.io.IOException
        Specified by:
        renameFile in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • renameRenamableDirectory

        public boolean renameRenamableDirectory​(java.lang.String src,
                                                java.lang.String dst)
                                         throws java.io.IOException
        Specified by:
        renameRenamableDirectory in interface alluxio.underfs.UnderFileSystem
        Overrides:
        renameRenamableDirectory in class alluxio.underfs.ConsistentUnderFileSystem
        Throws:
        java.io.IOException
      • renameRenamableFile

        public boolean renameRenamableFile​(java.lang.String src,
                                           java.lang.String dst)
                                    throws java.io.IOException
        Specified by:
        renameRenamableFile in interface alluxio.underfs.UnderFileSystem
        Overrides:
        renameRenamableFile in class alluxio.underfs.ConsistentUnderFileSystem
        Throws:
        java.io.IOException
      • setOwner

        public void setOwner​(java.lang.String path,
                             java.lang.String user,
                             java.lang.String group)
                      throws java.io.IOException
        Specified by:
        setOwner in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • setMode

        public void setMode​(java.lang.String path,
                            short mode)
                     throws java.io.IOException
        Specified by:
        setMode in interface alluxio.underfs.UnderFileSystem
        Throws:
        java.io.IOException
      • supportsFlush

        public boolean supportsFlush()
        Specified by:
        supportsFlush in interface alluxio.underfs.UnderFileSystem
      • isSeekable

        public boolean isSeekable()
        Specified by:
        isSeekable in interface alluxio.underfs.UnderFileSystem
        Overrides:
        isSeekable in class alluxio.underfs.BaseUnderFileSystem