06. 使用 Rest 操作 HDFS

Par @Martin dans le
Tags :

要使用 rest 操作 HDFS, 需要先开启集群的 rest 服务.

vim httpfs-env.sh

export HTTPFS_HTTP_PORT=14000


vim core-site.xml

<property>
    <!--可使用节点-->
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
</property>
<property>
    <!--可使用用户组-->
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
</property>


hdfs-site.xml

<property>
    <!--启动 webhdfs-->
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
</property>


重启 NameNode

修改好配置文件后, 重新启动 NameNode:

./stop-all.sh
./start-all.sh
./httpfs.sh start


最后一行就是启动集群的 rest 服务器.

测试

执行命令 curl -i "http://192.168.1.213:14000/webhdfs/v1?user.name=root&op=LISTSTATUS"

-i 表示显示 http response 的头信息, 连同网页代码一起.

  • api: http://<HOST>:<PORT>/webhdfs/v1/<PATH>
  • 参数:
    • user.name 操作者
    • op 操作内容
  • 返回 json 格式

更多命令参考 http://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-hdfs/WebHDFS.html