Hadoop 提供了一个 FileSystem Shell API 来支持文件系统操作,例如创建、重命名或删除文件和目录,打开、读取或写入文件。FileSystem shell 是一个 java 应用程序,它使用 java FileSystem 类来提供 FileSystem 操作。FileSystem Shell API 为操作创建 RPC 连接。
如果客户端在 Hadoop 集群中,那么这很有用,因为它使用hdfs
URI 方案连接到 hadoop 分布式文件系统,因此客户端会进行直接 RPC 连接以将数据写入 HDFS。
这对于在 Hadoop 集群中运行的应用程序来说是很好的,但可能存在外部应用程序需要操作 HDFS 的用例,例如它需要创建目录并将文件写入该目录或读取存储在 HDFS 上的文件的内容。Hortonworks 基于称为 WebHDFS 的标准 REST 功能开发了一个 API 来支持这些要求。
WebHDFS 提供 REST API 功能,任何外部应用程序都可以通过 HTTP 连接连接 DistributedFileSystem。无论外部应用程序是 Java 还是 PHP。
WebHDFS 概念基于 HTTP 操作,如 GET、PUT、POST 和 DELETE。OPEN、GETFILESTATUS、LISTSTATUS 等操作使用 HTTP GET,其他操作如 CREATE、MKDIRS、RENAME、SETPERMISSIONS 依赖于 HTTP PUT
它通过 HTTP 提供对 HDFS 的安全读写访问。它基本上是为了替代 HFTP(HTTP 上的只读访问)和 HSFTP(HTTPS 上的只读访问)。它使用webhdfs
URI 方案连接分布式文件系统。
如果客户端在 Hadoop 集群之外并试图访问 HDFS。WebHDFS 对它很有用。此外,如果您尝试连接两个不同版本的 Hadoop 集群,那么 WebHDFS 很有用,因为它使用 REST API,因此它独立于 MapReduce 或 HDFS 版本。