hadoop文件系统详解--(1),


Hadoop有一个抽象的文件系统概念,HDFS只是其中的一个实现。Java抽象类 org.apache.hadoop.fs.FileSystem展示了Hadoop的一个文件系统,而且有几个具体实现,如表 3-1所示。

文件系统

URI
方案

Java实

现(全部在
org.apache.hadoop)

描述

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-
FileSystem

在HTTPS上提供对

HDFS只读访问的

文件系统(同上,与

FTP无关)

HAR

har

fs.HarFileSystem

一个构建在其他文

件系统上来存档文

件的文件系统。Hadoop

存档一般在HDFS中

的文件存档时使用,

以减少名称节点内存的使用

KFS(Cloud-Store)

kfs

fs.kfs.Kosmos-
FleSystem

cloudstore(其前身是

Kosmos文件系统)

是相似于HDFS或是

Google的GFS的文件

系统,用C++编

写。详

情可参见http://kosmosfs.
sourceforge.net/

FTP

ftp

fs.ftp.FTP-
FileSystem

由FTP服务器支持的

文件系统

S3(本地)

s3n

fs.s3native.Native-
S3FileSystem.

由Amazon S3支

持的文件

系统。可参见

http://wiki.apache.org
/hadoop/AmazonS3

S3(基于
块)

s3

fs.s3.S3FileSystem

由 Amazon S3支

持的文件系统,

以块格式存储文件

(与HDFS很相似)

来解决S3的5 GB

文件大小限制


Hadoop提供了许多文件系统的接口,它一般使用URI 方案来选取合适的文件系统实例交互。举例来说,我们在前一小节中研究的文件系统shell可以操作所有的Hadoop文件系统。列出本地文件系统根目录下的文件,输入以下命令:

1.  % hadoop fs -ls file:/// 

尽管运行那些可访问任何文件系统的MapReduce程序是可行的(有时也很方便),但在处理大量数据时,仍然需要选择一个有最优本地数据的分布式文件系统,如HDFS或者KFS。

相关内容