(1) Interfaces
hadoop is written in Java. And the interaction between different file systems in Hadoop is regulated by the Java API. In fact, the shell for the file system used earlier is a java application that uses the java file system to provide file system operations. Even though other file systems such as FTP and S3 have their own access tools, these interfaces are still widely used in HDFS, mainly for collaboration between hadoop file systems.
(2) Thrift
It was mentioned above that it is possible to interact with Hadoop's filesystem through java APIs, while it is more troublesome for other non-java applications to access the hadoop filesystem. the Thrift API in the Thriftfs taxonomy unit can fill the gap by presenting the Hadoop filesystem as an The Apache Thrift API in the Thriftfs classification unit fills this gap by presenting the Hadoop filesystem as an Apache Thrift service, making it easy for any language with a Thrift binding to interact with the Hadoop filesystem.Thrift is a scalable, cross-language service development software framework developed by Facebook. Thrift solves the problem of cross-platform communication between systems with large amounts of data, and between systems with different language environments. When communicating between many different languages, Thrift can be used as a binary high-performance communication middleware, which supports data serialization and many types of RPC services.
(3) C language library
hadoop provides mapping java file system interface c language library ----libhdfs. libhdfs can be written as a C language library to access the HDFS, in fact, it can access any of the Hadoop file system, you can also use JNI (Java Native Interface) to call the java file system client.
(4) FUSE
FUSE allows filesystems to be consolidated into one Unix filesystem and executed in userspace. By using the Hadoop Fuse-DFS contrib module to support mounting any Hadoop filesystem as a standard filesystem, it is possible to interact with the filesystem using UNIX tools, and to access the filesystem using POSIX libraries in any programming language.
(5) WebDAV
WebDAV is a series of HTTP extensions that support editing and updating files. In most operating systems, WebDAV*** enjoy can be mounted as a filesystem, so HDFS or other Hadoop filesystems can be accessed as a standard filesystem by making HDFS or other Hadoop filesystems available externally through WebDEV.
(6) Other HDFS Interfaces
HTTP-HDFS defines a read-only interface for retrieving directory listings and data over HTTP.NameNode's embedded web servers run on port 50070 and are served in XML format, and the file data DataNood provides to NameNode through their web servers on port 50075 to NameNode. This protocol is not limited to a particular HDFS version, so users can write their own to use HTTP to read data from HDFS running different versions of Hadoop.One such implementation is HftpFileSystem, a variant of HTTPS that is a hadoop file system that communicates with HDFS over HTTP.