Hadoop有一个抽象的文件系统概念,HDFS只是其中的一个实现。Java抽象类org.apache.hadoop.fs.FileSystem定义了Hadoop中一个文件系统的客户端接口,并且抽象类有几个具体实现,下面我们以列表来展示一下:
| 文件系统 | URI方案 | Java实现 | 详细描述 |
|---|---|---|---|
| Local | file | fs.LocalFileSystem | 使用客户端校验本地磁盘文件系统。 使用RawLocalFileSystem表示无校验本地文件系统
|
| HDFS | hdfs | hdfs.DistributedFileSystem | Hadoop的分布式文件系统。将HDFS设计成与MapReduce结合使用。可以实现高性能 |
| WebHDFS | Webhdfs | Hdfs.web.WebHdfsFileSystem | 基于HTTP的文件系统,提供对HDFS的读写访问 |
| Secure WebHDFS | swebhdfs | hdfs.web.SWebHdfsFileSystem | WebHDFS的HTTPS版本 |
| HAR | har | fs.HarFileSystem | 一个构件在其他文件系统之上用于文件存档的文件系统。Hadoop存档文件系统通常用于将HDFS中的多个文件打包成一个存档文件,以减少namenode内存的使用。使用Hadoop的achive命令来创建HAR文件 |
| View | viewfs | viewfs.ViewFileSystem | 针对其他Hadoop文件系统的客户端挂载表。通常用于为联邦namenode创建挂载点。 |
| FTP | ftp | fs.ftp.FTPFileSystem | 由FTP服务器支持的文件系统 |
| S3 | S3a | fs.s3a.S3AFileSystem | 由Amazon S3支持的文件系统。替代老板本的s3n实现 |
| Azure | wasb | fs.azure.NativeAzureFileSystem | 由Microsoft Azure支持的文件系统 |
| Swift | swift | fs.swift.snative.SwiftNativeFileSystem | 由OpenStack Swift支持的文件系统
|
Hadoop对文件系统提供了许多接口,它一般是通过URI方案来选取合适的文件系统实例来进行交互。
举个例子,我们要列举出本地文件系统根目录下的文件,可以输入以下命令:
% hadoop fs -ls file:///
尽管运行的MapReduce程序可以访问任何文件系统,但在处理大数据集时,建议还是选择一个有数据本地优化的分布式文件系统,如HDFS。
--摘自《Hadoop权威指南》

被折叠的 条评论
为什么被折叠?



