说明
PathCapabiliy提供了以编程的方式查询FileSystem,FileContext或者其他实现类的实例在给定路径下提供的操作方法。
- 允许callers不构建文件系统,就可以探测
- 允许不同的文件系统公开语义的基本差异
可用功能
- 基本的功能使用前缀 fs.capability
- 独立的文件系统使用 fs.the filesystem scheme + .capability.
如果调用失败的话,原因肯能是多个
1.cpapbility未知
2.capability不可用
3.local class不知道是否在路径上可用
实际上第三点不太容易达成,比如说路径,比如说权限等,都可能造成检测成功,但是实际调用失败。
fs.hasCapabilities(root,"fs.capability.append") == true
FSDataOutputStreamBuilder
FsDataOutputStreamBuilder用来在FileSystem上创建新文件或打开现有的文件进行写操作。
构造器模式
- create
用来创建文件 - append
- overwrite
- permission
- bufferSize
设置可用的buffer大小 - replication
- blocksize
- recurive
是否递归创建 - progress
- checksumOpt
- opt
客户端指定可选参数 - must
客户端指定强制参数 - builder
HDFSDataOutputStreamBuilder
HDFSDataOutputStreamBuilder扩展FSDataOutputStreamBuilder提供了额外的HDFS参数,用于进一步定制文件创建/追加行为。
- favoredNodes
- syncBlock
强制close同步文件 - newBlock
创建一个新的块,而不是追加到上一个块结束 - noLocalWrite
S3A自定义选项
- fs.s3a.create.performance
创建的优先级优先于一致性安全检查 - fs.s3a.create.header
用户自定义header