体系里表明与远程支持场所关系和接口的文件有哪些

如题所述

hadoop提供了许多文件系统的接口,用户可使用URI方案选取合适的文件系统来实现交互。
(1)接口
hadoop是使用Java编写的。而Hadoop中不同文件系统之间的交互是由Java API进行调节的。事实上,前面使用的文件系统的shell就是一个java应用,它使用java文件系统来提供文件系统操作。即使其他文件系统比如FTP、S3都有自己的访问工具,这些接口在HDFS中还是广泛使用,主要用来进行hadoop文件系统之间的协作。
(2)Thrift
上面提到可以通过java API 与Hadoop的文件系统进行交互,而对于其它非java应用访问hadoop文件系统则比较麻烦。Thriftfs分类单元中的Thrift API 可通过将Hadoop文件系统展示为一个Apache Thrift服务来填补这个不足,让任何有Thrift绑定的语言都能轻松地与Hadoop文件系统进行交互。Thrift是由Facebook公司开发的一种可伸缩的跨语言服务的发展软件框架。Thrift解决了各系统间大数据量的传输通信,以及系统之间语言环境不同而需要跨平台的问题。在多种不同的语言之间通信时,Thrift可以作为二进制的高性能的通信中间件,它支持数据序列化和多种类型的RPC服务。
(3)C语言库
hadoop提供了映射java文件系统接口的c语言库----libhdfs。libhdfs可以编写为一个访问HDFS的C语言库,实际上,它可以访问任意的Hadoop文件系统,也可以使用JNI(Java Native Interface)来调用java文件系统的客户端。
(4)FUSE
FUSE允许文件系统整合为一个Unix文件系统并在用户空间中执行。通过使用Hadoop Fuse-DFS的contrib模块支持任意的Hadoop文件系统作为一个标准文件系统进行挂载,便可以使用UNIX的工具和文件系统进行交互,还可以通过任意一种编程语言使用POSIX库来访问文件系统。
(5)WebDAV
WebDAV是一系列支持编辑和更新文件的HTTP扩展。在大部分的操作系统中,WebDAV共享都可以作为文件系统进行挂载,因此,通过WebDEV向外提供HDFS或其它Hadoop文件系统,可以将HDFS作为一个标准的文件系统进行访问。
(6)其他HDFS接口
HTTP-HDFS定义了一个只读接口,用来在HTTP上检索目录列表和数据。NameNode的嵌入式Web服务器运行在50070端口上,以XML格式提供服务,文件数据DataNood通过它们的Web服务器50075端口向NameNode提供。这个协议并不局限于某个HDFS版本,所以用户可以自己编写使用HTTP从运行不同版本的Hadoop的HDFS中读取数据。HftpFileSystem就是其中一种实现,它是一个通过HTTP和HDFS交流的hadoop文件系统,是HTTPS的变体。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答