9.8 WebHDFS

本章前面的部分讲解了HDFS相关的内容,重点集中在如何使用shell下Hadoop的命令和HDFS的Java API来管理HDFS。这一小节将讲解Hadoop 1.0版本中新增加的WebHDFS,即通过Web命令来管理HDFS。

9.8.1 WebHDFS的配置

WebHDFS的原理是使用curl命令向指定的Hadoop集群对外接口发送页面请求,Hadoop集群的网络接口接收到请求之后,会将命令中的URL解析成HDFS上的对应文件或者文件夹,URL后面的参数解析成命令、用户、权限、缓存大小等参数。待完成相应的操作之后,将结果发还给执行curl命令的客户端,并显示执行信息或者错误信息。那么要使用WebHDFS,首先就必须在期望使用WebHDFS的客户端安装curl软件包。在Ubuntu下执行简单的apt-get install curl命令,apt包管理器就会自动从系统指定的源地址下载curl并安装。待安装结束之后,在终端输入curl-V可以查看是否安装成功。

在客户端安装好curl软件包之后,还需要修改Hadoop集群的配置,使其开放WebHDFS服务。具体操作是:停止Hadoop所有服务之后,配置hdfs-site.xml中的dfs.webhdfs.enabled, dfs.web.authentication.kerberos.principal, dfs.web.authentication.kerberos.keytab这三个属性为适当的值,其中第一个属性值应配置为true,代表启动webHDFS服务,后面两个代表使用webHDFS时采用的用户认证方法,这里为了简单起见并没有设置,后面的命令也都采用Hadoop的启动用户Ubuntu来发送命令。配置结束之后再启动Hadoop所有的服务,这样就可以使用WebHDFS来管理Hadoop集群了。