FileSystem类的方法使用

由于经常使用FileSystem这个类,但是对这个类的API不是很熟悉导致了一些不必要的麻烦,所以本人翻译了一下这个类。

所属的包:
org.apache.hadoop.fs

 FileSystem -->通用文件系统的抽象基类,可以作为一个分布式文件系统的实现,也可以作为连接本地磁盘的文件系统
 本地版存在于小型的hadoop实例和测试中。 所有可能用到分布式文件系统的用户代码都因该使用FileSystem类,Hadoop DFS
 文件系统是一个以单个磁盘出现的多机器的系统 ,大容量和容错力使他很有用,本地实现为localFileSystem,分布式实现是DistibutedFileSystem
 
 属性介绍:
 static String	DEFAULT_FS                                          --->public static final String	"file:///"
 
 static String	FS_DEFAULT_NAME_KEY                                 --->public static final String	"fs.defaultFS"
 
 static org.apache.commons.logging.Log	LOG                         --->日志记录工具
 
 static int	SHUTDOWN_HOOK_PRIORITY                                  --->文件系统关闭的优先级
 
 protected  org.apache.hadoop.fs.FileSystem.Statistics	statistics  --->跟踪统计读写等FileSystem完成的操作。
 
方法
 public abstract FSDataOutputStream append(Path f,
                                          int bufferSize,
                                          Progressable progress)
                                   throws IOException
 
 获得一个FSDataOutputStream可以使用IOUtils.copyBytes方法追加内容。
 
 static boolean	areSymlinksEnabled()   --->查看符号连接是否被禁用
 
 boolean	cancelDeleteOnExit(Path f) --->取消hadoop终止时删除文件操作
 
 static void	clearStatistics()      --->清楚统计信息
 
 void	close()                        --->关闭文件系统
 
 static void	closeAll()             --->关闭缓存中所有的文件系统
 
 static void	closeAllForUGI(org.apache.hadoop.security.UserGroupInformation ugi) 
                                       --->关闭指定用户组的文件系统
 
 void	completeLocalOutput(Path fsOutputFile, Path tmpLocalFile) 
                                       --->当我们完成对目标的写时调用,本地文件系统将不会工作,因为已经正确的学入了,
									   远程文件系统的话将会辅助tmpLocalFile的内廷到正确的目标fsOutputFile
 
 void	concat(Path trg, Path[] psrcs) --->合并文件 参数trg为合并后目标位置,psrcs为需要合并的文件
 
 void	copyFromLocalFile(boolean delSrc, boolean overwrite, Path[] srcs, Path dst) 
 void	copyFromLocalFile(boolean delSrc, boolean overwrite, Path src, Path dst) 
 void	copyFromLocalFile(boolean delSrc, Path src, Path dst) 
 void	copyFromLocalFile(Path src, Path dst)
 
                                       --->从本地复制文件到hdfs  delSrc为是否删除src overwrite为是否覆盖

									   
 void	copyToLocalFile(boolean delSrc, Path src, Path dst) 
 void	copyToLocalFile(boolean delSrc, Path src, Path dst, boolean useRawLocalFileSystem)
 void	copyToLocalFile(Path src, Path dst)
                                      --->复制到本地文件 useRawLocalFileSystem是否吧RawLocalFileSystem作为本地文件系统使用
									  
 static FSDataOutputStream	create(FileSystem fs, Path file, FsPermission permission)
 ********
  FSDataOutputStream	create(Path f, FsPermission permission, EnumSet<CreateFlag> flags, int bufferSize, 
                               short replication, long blockSize, Progressable progress,
							   org.apache.hadoop.fs.Options.ChecksumOpt checksumOpt) 
									  --->创建FSDataOutputStream并有自定义的校验和选项 参数:
									  f 打开的文件名 permission 权限 flags创建使用这个流的标志
									  bufferSize 使用的buffer的大小 checksum校验参数,如果空择取conf的配置
									  
									  
 boolean	createNewFile(Path f) 
                                      --->创建指定路径一个全新的0长度文件,如果创建失败或者文件已存在则返回false
									  
									
 Path	createSnapshot(Path path,String snapshotName)
 Path	createSnapshot(Path path) 
                                      --->创建一个快照,返回快照路径
									  
 void	createSymlink(Path target, Path link, boolean createParent)
                                      --->创建一个已存在文件的链接 createParent如果为true则缺失的父路径将会被创建
									  
abstract  boolean	delete(Path f, boolean recursive)
                                      --->删除一个文件 recursive是否递归删除
 
boolean	deleteOnExit(Path f)          --->文件系统关闭是删除

void	deleteSnapshot(Path path, String snapshotName)
                                      --->删除快照


static void	enableSymlinks()          --->禁用链接
 
boolean	exists(Path f)                --->检查文件是否存在

static FileSystem	get(URI uri, Configuration conf, String user)
static FileSystem	get(URI uri, Configuration conf)
static FileSystem	get(Configuration conf)
                                      --->(根据uri 已经传递的配置 用户 )获得FileSystem实例
									  
AclStatus	getAclStatus(Path path)   --->获得文件或者目录的acl状态									  
 
static List<org.apache.hadoop.fs.FileSystem.Statistics>	getAllStatistics()
                                      --->返回具有统计信息的文件系统类
 
ContentSummary	getContentSummary(Path f)
                                      --->返回指定路径的内容摘要
									 
long	getDefaultBlockSize(Path f)   --->返回最大输入文件的字节数(文件系统的默认块大小),路径只是为了定位文件系统不一定要存在


short	getDefaultReplication(Path path)
                                      --->返回副本数目
									  
static URI	getDefaultUri(Configuration conf)
                                      --->返回默认的url地址									  

BlockLocation[]	getFileBlockLocations(FileStatus file, long start, long len)
BlockLocation[]	getFileBlockLocations(Path p, long start, long len) 
                                      --->返回给定文件包含的主机名、偏移量、部分大小


FileChecksum	getFileChecksum(Path f)
                                      --->获得文件的校验和。

FileStatus	getFileLinkStatus(Path f) --->返回文件路径状态对象,如果路径是链接则返回链接的FileStatus 如果文件系统不支持链接,则相当与个体FileStatus函数

static Class<? extends FileSystem>	getFileSystemClass(String scheme, Configuration conf)
                                      --->获得一个文件系统
									 
									 
Path	getHomeDirectory()            --->返回当前用户在文件系统中的家目录									 
									 
									 
Path	getLinkTarget(Path f)         --->返回指定链接的目标

								 
static LocalFileSystem	getLocal(Configuration conf)
                                      --->返回本地文件系统

String	getScheme()                   --->获取协议									  
									 
									 
FsServerDefaults	getServerDefaults(Path p)
                                      --->返回一组服务器的默认配置值

static org.apache.hadoop.fs.FileSystem.Statistics	getStatistics(String scheme, Class<? extends FileSystem> cls)
                                      --->返回指定文件系统的统计信息

FsStatus	getStatus(Path p)									  
FsStatus	getStatus()               --->返回文件系统的使用和容量的状态对象

abstract  URI	getUri() 
                                      --->返回一个uri这个uri的身份和权限标识这个文件系统
									  
 long	getUsed() 
                                      --->返回该文件系统中所有文件的总大小
									  
abstract  Path	getWorkingDirectory() 
                                      --->获取给定文件系统的当前工作目录
									  
 byte[]	getXAttr(Path path, String name) 
                                      --->获取扩展名属性
									  
 Map<String,byte[]>	getXAttrs(Path path) 
									  --->获取文件或目录中所有的扩展名键值对
 Map<String,byte[]>	getXAttrs(Path path, List<String> names) 
									  --->获取文件或目录中所有的扩展名键值对  names - XAttr names.
		  
		  
 FileStatus[]	globStatus(Path pathPattern) 
                                      --->返回匹配这个pathPattern的所有文件,不是校验和文件,结果以名称排序,文件名pathpattern以规则字符和特殊匹配字符组成。
		  
 FileStatus[]	globStatus(Path pathPattern, PathFilter filter) 
                                      --->当名称路径匹配到pathPattern,并且被用户提供的过滤器接受时返回FileStatus数据
									  
 void	initialize(URI name, Configuration conf) 
                                      --->构建一个新的文件系统后调用
									  
 boolean	isDirectory(Path f) 
                                      --->如果路径为目录则返回true
 boolean	isFile(Path f) 
                                      --->如果路径为文件则返回true
									  
 org.apache.hadoop.fs.RemoteIterator<Path>	listCorruptFileBlocks(Path path) 
                                      --->返回给定路径下的损坏文件的迭代器  
									  
 org.apache.hadoop.fs.RemoteIterator<LocatedFileStatus>	listFiles(Path f, boolean recursive) 
                                      --->列出给定路径下文件的的状态信息和块信息
									  
 org.apache.hadoop.fs.RemoteIterator<LocatedFileStatus>	listLocatedStatus(Path f) 
                                      --->如果给定的路径为一个目录则返回这个目录下所有的文件和目录状态信息

abstract  FileStatus[]	listStatus(Path f) 
                                      --->如果给定文件是一个目录,列出给定path下的所有文件或目录
 FileStatus[]	listStatus(Path[] files)
                                      ---> 使用默认路径过滤器在给定的路径列表中过滤文件/目录。
          
 FileStatus[]	listStatus(Path[] files, PathFilter filter)
 FileStatus[]	listStatus(Path f, PathFilter filter)  
                                      ---> 使用用户自定义路径过滤器在给定的路径列表中过滤文件/目录。

 List<String>	listXAttrs(Path path) 
                                      --->获取一个文件或者目录的扩展属性名      
 Path	makeQualified(Path path) 
                                      --->确保一个path指定了文件系统
 
static boolean	mkdirs(FileSystem fs, Path dir, FsPermission permission) 
                                      --->创建指定权限的目录
									  
 boolean	mkdirs(Path f) 
                                      --->创建默认权限的目录
									  
abstract  boolean	mkdirs(Path f, FsPermission permission) 
                                      --->把给定的文件和不存在的父文件都放在目录中
         
 void	modifyAclEntries(Path path, List<AclEntry> aclSpec) 
                                      --->修改文件和ACL的条目
  
 void	moveFromLocalFile(Path src, Path dst)   
 void	moveFromLocalFile(Path[] srcs, Path dst) 
                                      --->拷贝到HDFS并且删除本地源


 void	moveToLocalFile(Path src, Path dst) 
                                      --->拷贝到本地并删除源
									  
static FileSystem	newInstance(Configuration conf) 
                                      --->返回一个特定配置的集成fileSystem的类
          
static FileSystem	newInstance(URI uri, Configuration conf) 
                                      --->返回一个URL scheme和 authority指定的FileSystem
          Returns the FileSystem for this URI's scheme and authority.
static FileSystem	newInstance(URI uri, Configuration conf, String user) 
                                      --->返回一个URL scheme和 authority,passeduser指定的FileSystem
    
static LocalFileSystem	newInstanceLocal(Configuration conf) 
                                      --->获得一个本地文件系统类

 FSDataInputStream	open(Path f) 
                                      --->在制定路径上打开FSDataInputStream流
abstract  FSDataInputStream	open(Path f, int bufferSize) 
                                      --->在制定路径上打开FSDataInputStream流
static void	printStatistics() 
                                      --->打印所有文件系统的所有统计信息
protected  void	processDeleteOnExit() 
                                      --->删除所有被标记为退出时删除的文件
 void	removeAcl(Path path) 
                                      --->除了基本ACL条目文件和目录之外删除所有文件  path修改的路径
       
 void	removeAclEntries(Path path, List<AclEntry> aclSpec) 
                                      --->从文件或者目录中删除所有的ACL条目
									  
 void	removeDefaultAcl(Path path) 
                                      --->从文件或者目录中删除所有的ACL条目
									  
 void	removeXAttr(Path path, String name) 
                                      --->指定路径下删除所有扩展属性
									  
abstract  boolean	rename(Path src, Path dst) 
                                      --->重命名

 void	renameSnapshot(Path path, String snapshotOldName, String snapshotNewName) 
                                      --->重命名快照
									  
protected  Path	resolveLink(Path f)   --->返回指定链接的目标 
  
 Path	resolvePath(Path p)           --->通过解析符号链接或者挂载点返回路径的完全限定路径,
                                        
       
 void	setAcl(Path path, List<AclEntry> aclSpec) 
                                      --->丢弃所有现在的条目,完全替代文件或者目录的ACL条目
									  
static void	setDefaultUri(Configuration conf, URI uri) 									  
static void	setDefaultUri(Configuration conf, String uri) 
                                      --->在configuration中设置默认文件系统的URI
         


 void	setOwner(Path p, String username, String groupname) 
                                      --->设置path的拥有者
									  
 void	setPermission(Path p, FsPermission permission) 
                                      --->设置path的权限
									  
 boolean	setReplication(Path src, short replication) 
                                      --->为现存的文件设置副本数
									  
 void	setTimes(Path p, long mtime, long atime) 
                                      --->设置文件的访问时间
									  
 void	setVerifyChecksum(boolean verifyChecksum) 
                                      --->设置验证校验和标志

abstract  void	setWorkingDirectory(Path new_dir) 
                                      --->为给定文件系统设置当前工作目录
									  
 void	setWriteChecksum(boolean writeChecksum) 
                                      --->设置写校验标志
									  
 void	setXAttr(Path path, String name, byte[] value) 
                                      --->为一个文件或者目录设置扩展属性
									  
 void	setXAttr(Path path, String name, byte[] value, EnumSet<XAttrSetFlag> flag) 
                                      --->为一个文件或者目录设置扩展属性
 Path	startLocalOutput(Path fsOutputFile, Path tmpLocalFile) 
                                      --->返回一个用户可以写入输出的本地文件    
 boolean	supportsSymlinks() 
                                      --->是否支持符号链接。
  • 8
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天心有情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值