hadoop-3.1.2启动httpfs

最近有一个需求,要求使用httpfs读取数据,一开始看到httpfs这个词,第一感觉是不是多了个f,是不是https,后来百度一下,其实不然。

httpfs其实是使用http协议访问hdfs文件系统:

HttpFS是一台提供REST HTTP网关的服务器,该网关支持所有HDFS文件系统操作(读取和写入)。并且可以与webhdfs REST HTTP API 互操作

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

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

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

所述webhdfs客户文件系统实现可以用于使用Hadoop的文件系统命令(访问HttpFS hadoop的FS)行工具使用Hadoop的文件系统的Java API的Java应用程序,以及。

HttpFS具有内置的安全性,支持Hadoop伪身份验证和HTTP SPNEGO Kerberos以及其他可插入身份验证机制。它还提供了Hadoop代理用户支持。

详情可参考:https://hadoop.apache.org/docs/stable/hadoop-hdfs-httpfs/index.html

服务器启动

在hadoop3.1.2版本中已经将httpfs集成好了,我们只需要配置httpfs相关配置,启动后就能使用httpfs访问hdfs文件服务器

具体步骤:

配置HttpFS

默认情况下,HttpFS假定Hadoop配置文件(core-site.xml和hdfs-site.xml)位于HttpFS配置目录中。

如果不是这种情况,则将httpfs.hadoop.config.dir属性添加到httpfs-site.xml文件,该属性设置为Hadoop配置目录的位置。

1.在core-site.xml中添加如下配置

<property> <name>hadoop.proxyuser.root.hosts</name> <value>s128</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpffjx.html