hadoop集群Restful接口的使用

来源:互联网 发布:telnet 端口打开失败 编辑:程序博客网 时间:2024/06/03 14:14

一、介绍

       在通常情况下,我们使用HDFS的command命令去查看hdfs上的文件,或者使用默认的hadoop的web管理器查看,从hadoop0.2.23后,hadoop设计了一套Rest风格的接口,通过http协议访问的方式,去浏览和操作HDFS上的数据。下面将一下hadoop的rest接口。

二、解析

(1)原生rest

HDFS的原生rest接口需要进行开启才能够使用,具体是在hdfs-site.xml文件中进行参数的设置。

<property><name>dfs.webhdfs.enabled</name><value>true</value></property><property> 

设置完改参数后,重启整个hadoop集群就可以访问hadoop的rest接口。在hadoop2.x系列中,通过访问50070端口可以获取hdfs上的数据,下面该图是通过50070端口访问原生的rest接口。


(2)httpfs

hadoop集群中,除了访问原生的rest接口外(50070)端口,hadoop还提供了一中httpfs的方式访问rest接口。打开httpfs的rest接口需要在开启rest接口的基础上在配置core-site.xml文件。

<property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>
hadoop.proxyuser.root.hosts:该参数表示可以通过httpfs接口hdfs的ip地址限制

hadoop.proxyuser.root.groups:通过httpfs接口访问的用户获得的群组身份

在两个参数中,第三位(root)的参数表示启动hadoop集群的用户。

在配置完成后我们不需要重启整个hadoop集群,然后直接执行httpfs.sh start命令,就可以启动httpfs接口。该进程会监听14000端口。


httpfs实现一种匿名的方式登陆hdfs文件系统。在hfds command中,用户的登陆需要在linux操作系统中拥有相应的用户账号。httpfs则避免了这种方式,通过一种身份包装的方式来操作系统。在httpfs中的操作用户不需要真正的在linux创建尸体用户,而是以通过第三位的用户名(root)来包装自己的登陆名。通过这样的方式hdfs会认为登陆着是root,这样便不会被hdfs的安全机制所拦截,在hdfs上后,用户在以正常的身份去相应的命令。这样便绕过了不适用linux账号的方式去实现hadoop2.x集群上的多用户问题。

该图为通过14000端口访问hdfs文件系统


我们会发现两种方式访问hdfs返回的json数据会稍微有一些不同。

三、使用

hadoop rest接口的使用,使用http协议进行需求的申请和结果的返回,具体的使用方式参照官方上的rest接口的使用方式:

http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-hdfs/WebHDFS.html

四、总结

       建议使用httpfs接口的方式进行rest接口的访问,httpfs接口向我们提供了方便的工具,并且不会影响50070端口的其他功能。

0 0
原创粉丝点击