cryst2l 发表于 2013-10-25 10:43:50

不仅是HDFS,Hadoop支持多种文件系统

本帖最后由 fiberlijun 于 2009-11-19 17:10 编辑
org.apache.hadoop.fs.FileSystem
这个抽象类代表hadoop的一个文件系统,目前系统已经有很多个具体实现:
文件系统               URI前缀       hadoop的具体实现类
Local                     file               fs.LocalFileSystem
HDFS                     hdfs            hdfs.DistributedFileSystem
HFTP                      hftp            hdfs.HftpFileSystem
HSFTP                  hsftp          hdfs.HsftpFileSystem
HAR                        har            fs.HarFileSystem
KFS                         kfs            fs.kfs.KosmosFileSystem
FTP                        ftp             fs.ftp.FTPFileSystem
S3 (native)            s3n            fs.s3native.NativeS3FileSystem
S3 (blockbased)      s3      fs.s3.S3FileSystem
Hadoop提供了很多接口来访问这些文件系统,最常用的是通过URI前缀来访问正确的文件系统。比如:
hadoop fs -lsfile:///.......
hadoop fs -lshdfs:///.......
MapReduce使用的文件系统
虽然理论上MapReduce可以使用上面这些系统,但是如果我们处理海量数据的话还是要选用一个分布式文件系统hdfs或者kfs。
代码片段[*]private static FileSystem createFileSystem(URI uri, Configuration conf
[*]      ) throws IOException {
[*]    Class clazz = conf.getClass("fs." + uri.getScheme() + ".impl", null);
[*]    if (clazz == null) {
[*]      throw new IOException("No FileSystem for scheme: " + uri.getScheme());
[*]    }
[*]    FileSystem fs = (FileSystem)ReflectionUtils.newInstance(clazz, conf);
[*]    fs.initialize(uri, conf);
[*]    return fs;
[*]}复制代码hadoop-default.xml关于filesystem实现的配置
fs.file.impl=org.apache.hadoop.fs.LocalFileSystem
fs.hdfs.impl=org.apache.hadoop.hdfs.DistributedFileSystem
fs.s3.impl=org.apache.hadoop.fs.s3.S3FileSystem
s.s3n.impl=org.apache.hadoop.fs.s3native.NativeS3FileSystem
fs.kfs.impl=org.apache.hadoop.fs.kfs.KosmosFileSystem
fs.hftp.impl=org.apache.hadoop.hdfs.HftpFileSystem
fs.hsftp.impl=org.apache.hadoop.hdfs.HsftpFileSystem
fs.ftp.impl=org.apache.hadoop.fs.ftp.FTPFileSystem
fs.ramfs.impl=org.apache.hadoop.fs.InMemoryFileSystem
fs.har.impl=org.apache.hadoop.fs.HarFileSystem
增加文件系统
只要我们实现org.apache.hadoop.fs.FileSystem接口就可以增加一种hadoop能够访问的文件系统,非常的方便
fs.xxx.impl=org.apache.hadoop.fs.xxxFileSystem
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fiberlijun/archive/2009/11/13/4805966.aspx

lovejunxia 发表于 2013-10-25 10:43:50

顶,总结得非常清楚。

yunjisuanxue 发表于 2013-10-25 10:43:50

这里有人用过FTPFileSystem吗吗?

louisthy 发表于 2013-10-25 10:43:50

FTPFileSystem还没有实现 吧
页: [1]
查看完整版本: 不仅是HDFS,Hadoop支持多种文件系统