整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

3.4 Hadoop文件系统

hadoop 花牛 14℃ 0评论

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

表3-1 hadoop文件系统

文件系统 URI方案 Java实现(均包含在org.apache.hadoop 包中) 描述
Local file fs.LocalFileSystem 使用了客户端校验和的本地磁盘文件系统。没有使用校验和的本地磁盘文件系统RawLocalFileSystem。
HDFS hdfs hdfs.DistributedFileSystem Hadoop的分布式文件系统。将 HDFS设计成与MapReduce结合 使用,可以实现高性能
HFTP Hftp hdfs.hftpFileSystem 一个在HTTP上提供对HDFS只 读访问的文件系统(尽管名称为 HFTP,但与FTP无关)。通常与distcp结合使用(参见3.8节),以 实现在运行不同版本的HDFS的 集群之间复制数据
HSFTP hsftp hdfs.HsftpFileSyste 在HTTPS上提供对HDFS只读访问的文件系统(同上,与FTP无关)
WebHDFS Webhdfs 基于HTTP,对HDFS提供安全 读写访问的文件系统。WebHDFS 是为了替代HFTP和HSFTP而构 建的
HAR har fs.HarFileSystem 一个构建在其他文件系统之上用 于文件存档的文件系统。Hadoop 存档文件系统通常用于需要将 HDFS中的文件进行存档时,以 减少namenode内存的使用。
hfs

(云存储)

kfs CloudStore(其前身为Kosmos文件系统)是类似于HDFS或是谷歌的 GFS的文件系统,用C++写。详情 http://kosmosfs.sourceforge.net/
FTP ftp fs.ftp.FTPFileSystem 由FTP服务器支持的文件系统
S3

(原生)

S3n fs.s3native.NativeS3FileSystem 由Amazon S3支持的文件系统。
S3

(基于块)

S3 fs.sa.S3FileSystem 由Amazon S3支持的文件系统, 以块格式存储文件(与HDFS很相 似)以解决S3的5 GB文件大小 限制
分布式 RAID hdfs hdfs.DistributedRaidFileSystem RAID版本的HDFS是为了存档而设计的。针对HDFS中的每个文件,创建一个(更小的)校验文件, 并允许HDFS中的数据副本由3 降为.2,由此可以减少25%~30% 的存储空间,但是数据丢失的概 率保持不变。分布式RAID模式需要在集群中运行一个RaidNode后台进程
View viewfs viewfs.ViewFileSystem 针对其他Hadoop文件系统挂载的客户端表。通常用于联邦namenode建挂载点。

 

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

% hadoop fs -Is file:///

尽管运行的MapReduce程序可以访问任何文件系统(有时也很方便),但在处理大数据集时,建议你还是选择一个有数据本地优化的分布式文件系统,如HDFS。

 

接口

Hadoop是用Java写的,通过Java API可以调用所有Hadoop文件系统的交互操作。例如,文件系统的命令解释器就是一个Java应用,它使用Java的FileSystem类来提供文件系统操作。其他一些文件系统接口也将在本小 节中做简单介绍。这些接口通常与HDFS —同使用,因为Hadoop中的其他文件系统一般都有访问基本文件系统的工具(对于FTP,有FTP客户端;对于S3,有S3工具,等等),但它们大多数都能用于任何Hadoop文件系统。

转载请注明:全栈大数据 » 3.4 Hadoop文件系统

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址