Hadoop有一个抽象的文件系统概念,HDFS只是其中的一个实现。Java抽象类 org.apache.hadoop.fs.FileSystem展示了Hadoop的一个文件系统,而且有几个具体实现,如表 3-1所示。
| 
 文件系统  | 
 URI  | 
 Java实 现(全部在  | 
 描述  | 
| 
 Local  | 
 file  | 
 fs.LocalFileSystem  | 
 针对有客户端校验和 的本地连接磁盘使用 的文件系统。针对没 有校验和的本 地文件系统使用 RawLocalFileSystem。 详情参见第4章  | 
| 
 HDFS  | 
 hdfs  | 
 hdfs.Distributed- FileSystem  | 
 Hadoop的分布式 文件系统。HDFS 被设计为结合使用 Map-Reduce实现高 效工作  | 
| 
 HFTP  | 
 hftp  | 
 hdfs.HftpFileSystem  | 
 一个在HTTP上提 供对HDFS只读访 问的文件系统(虽然 其名称为HFTP,但 它与FTP无关)。通 常与distcp结合使用 (参见第3章),在运 行不同版本HDFS的 集群间复制数据  | 
| 
 HSFTP  | 
 hsftp  | 
 hdfs.Hsftp-  | 
 在HTTPS上提供对 HDFS只读访问的 文件系统(同上,与 FTP无关)  | 
| 
 HAR  | 
 har  | 
 fs.HarFileSystem  | 
 一个构建在其他文 件系统上来存档文 件的文件系统。Hadoop 存档一般在HDFS中 的文件存档时使用, 以减少名称节点内存的使用  | 
| 
 KFS(Cloud-Store)  | 
 kfs  | 
 fs.kfs.Kosmos-  | 
 cloudstore(其前身是 Kosmos文件系统) 是相似于HDFS或是 Google的GFS的文件 系统,用C++编 写。详 情可参见http://kosmosfs.  | 
| 
 FTP  | 
 ftp  | 
 fs.ftp.FTP-  | 
 由FTP服务器支持的 文件系统  | 
| 
 S3(本地)  | 
 s3n  | 
 fs.s3native.Native-  | 
 由Amazon S3支 持的文件 系统。可参见 http://wiki.apache.org  | 
| 
 S3(基于  | 
 s3  | 
 fs.s3.S3FileSystem  | 
 由 Amazon S3支 持的文件系统, 以块格式存储文件 (与HDFS很相似) 来解决S3的5 GB 文件大小限制  | 
Hadoop提供了许多文件系统的接口,它一般使用URI 方案来选取合适的文件系统实例交互。举例来说,我们在前一小节中研究的文件系统shell可以操作所有的Hadoop文件系统。列出本地文件系统根目录下的文件,输入以下命令:
1. % hadoop fs -ls file:///
尽管运行那些可访问任何文件系统的MapReduce程序是可行的(有时也很方便),但在处理大量数据时,仍然需要选择一个有最优本地数据的分布式文件系统,如HDFS或者KFS。
原文:http://blog.csdn.net/crxy2016/article/details/44851875