[hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS

简介: [hadoop3.x系列]HDFS REST HTTP API的使用(二)HttpFS

历史文章

[hadoop3.x系列]HDFS REST HTTP API的使用(一)WebHDFS

🍑HTTPFS概述

l HttpHDFS本质上和WebHDFS是一样的,都是提供HTTP REST API功能,但它们的区别是HttpHDFS是HttpFS是一个独立于HadoopNameNode的服务,它本身就是Java JettyWeb应用程序。

l 因为是可以独立部署的,所以可以对HttpHDFS设置防火墙,而避免NameNode暴露在墙外,对一些安全性要求比较高的系统,HttpHDFS会更好些。

l HttpFS是一种服务器,它提供REST HTTP网关,支持所有HDFS文件系统操作(读和写)。并且它可以与WebhdfsREST HTTPAPI

l HttpFS可用于在运行不同版本Hadoop(克服RPC版本控制问题)的集群之间传输数据,例如使用HadoopDiscreCP。

l HttpFS可用于在防火墙后面的集群上访问HDFS中的数据(HttpFS服务器充当网关,是允许跨越防火墙进入集群的唯一系统)。

l HttpFS可以使用HTTP实用程序(例如curl和wget)和来自Java以外的其他语言的HTTP库Perl来访问HDFS中的数据。

l 这个****Webhdfs****客户端文件系统实现可以使用Hadoop文件系统命令访问HttpFS(hdfs dfs)行工具以及使用Hadoop文件系统JavaAPI的Java应用程序。

l HttpFS内置了支持Hadoop伪身份验证和HTTP、SPNEGO Kerberos和其他可插拔身份验证机制的安全性。它还提供Hadoop代理用户支持。

🐒1.1.1 HTTPFS是如何工作的

l HttpFS是一个独立于HadoopNameNode的服务。

l HttpFS本身就是Java JettyWeb应用程序。

l HttpFS HTTP Web服务API调用是HTTPREST调用,映射到HDFS文件系统操作。例如,使用curl/Unix命令:

$curl ‘http://httpfs-host:14000/webhdfs/v1/user/foo/README.txt?op=OPEN&user.name=foo’

返回HDFS的内容/user/foo/README.txt档案。

$curl ‘http://httpfs-host:14000/webhdfs/v1/user/foo?op=LISTSTATUS&user.name=foo’

返回HDFS的内容/user/foo目录中的JSON格式。

$curl ‘http://httpfs-host:14000/webhdfs/v1/user/foo?op=GETTRASHROOT&user.name=foo’

返回路径/user/foo/.trash,如果/是加密区域,则返回路径。/.Trash/Foo。看见更多细节关于加密区域中的垃圾路径。

$curl -X POST‘http://httpfs-host:14000/webhdfs/v1/user/foo/bar?op=MKDIRS&user.name=foo’

创建HDFS/user/foo/bar目录。

l HttpFS默认端口号为14000

🐒1.1.2 配置Hadoop

编辑Hadoop的core-site.xml,并将运行HttpFS服务器的Unix用户定义为proxyuser。例如:

<property>  
     <name>hadoop.proxyuser.#HTTPFSUSER#.hosts</name>  
     <value>httpfs-host.foo.com</value> 
     </property> <property>
     <name>hadoop.proxyuser.#HTTPFSUSER#.groups</name>  
     <value>*</value> 
 </property>

重要:替换#HTTPFSUSER#使用将启动HttpFS服务器的Unix用户。

例如:

<property>  
<name>hadoop.proxyuser.root.hosts</name>  
<value>*</value></property><property>  
<name>hadoop.proxyuser.root.groups</name>  
<value>*</value>
</property>
🐒1.1.3 重启Hadoop

重启Hadoop,并激活代理用户配置

🐒1.1.4 启动HttpFS

hdfs --daemon start httpfs

🐒1.1.5 测试HttpFS工作

http://node1.itcast.cn:14000/webhdfs/v1?user.name=root&op=LISTSTATUS

🐒1.1.6 HTTP默认服务
Name\ Description
/conf Display configuration properties
/jmx Java JMX management interface
/logLevel Get or set log level per class
/logs Display log files
/stacks Display JVM stacks
/static/index.html The static home page

http://node1.itcast.cn:14000/conf?user.name=root


目录
相关文章
|
8天前
|
安全 Java API
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)
28 0
第7章 Spring Security 的 REST API 与微服务安全(2024 最新版)(上)
|
30天前
|
前端开发 JavaScript API
基于React的简易REST API客户端设计与实现
基于React的简易REST API客户端设计与实现
21 3
|
1月前
|
Java API Maven
HDFS的API操作
HDFS的API操作
26 0
|
1月前
|
JSON 网络协议 API
PRC和HTTP(rest)过程的区别
PRC和HTTP(rest)过程的区别
|
3天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
9 3
|
2月前
|
XML 自然语言处理 前端开发
NLP自学习平台提供了API接口调用服务,这些接口可以通过HTTP GET请求进行调用
【2月更文挑战第7天】NLP自学习平台提供了API接口调用服务,这些接口可以通过HTTP GET请求进行调用
18 2
|
2月前
|
Shell API
srs的http api鉴权
srs的http api鉴权
43 0
|
3月前
|
JSON Java API
Java 编程问题:十三、HTTP 客户端和 WebSocket API
Java 编程问题:十三、HTTP 客户端和 WebSocket API
89 0
|
3月前
|
JSON 缓存 API
title: 深入理解REST API设计的最佳实践
title: 深入理解REST API设计的最佳实践
36 0
|
4月前
|
存储 分布式计算 Hadoop
Hadoop系列HDFS详解
Hadoop系列HDFS详解
41 0