WebHDFS REST API (使用curl)
最后更新于:2022-04-02 04:02:47
[TOC]
> [参考](https://hadoop.apache.org/docs/r3.1.0/hadoop-project-dist/hadoop-hdfs/WebHDFS.html)
## curl操作webhdfs
### 创建并写入文件
需要分两步
1. `curl -i -X PUT "http://:/webhdfs/v1/?op=CREATE
[&overwrite=][&blocksize=][&replication=]
[&permission=][&buffersize=][&noredirect=]"`
2. `curl -i -X PUT -T "http://:/webhdfs/v1/?op=CREATE..."`
eg:
1. `curl -i -X PUT "http://192.168.0.110:5007/0webhdfs/v1/input/index.html?op=CREATE&overwrite=false&blocksize=1048576`
2. `curl -i -X PUT -T index.html "http://192.168.0.110:50070/webhdfs/v1/input/index.html?op=CREATE&blocksize=1048576"`
### 在一个文件内追加内容
`curl -i -X POST "http://:/webhdfs/v1/?op=APPEND[&buffersize=]"`
`curl -i -X POST -T "http://:/webhdfs/v1/?op=APPEND..."`
注意该条命令获得的是DataNode的信息。
### 打开并读取一个文件
`curl -i -L "http://:/webhdfs/v1/?op=OPEN[&offset=][&length=][&buffersize=]"`
eq:
`http://192.168.0.110:50070/webhdfs/v1/input/hadoop-im_user-datanode-node-3.log?op=open`
### 创建一个目录
`curl -i -X PUT "http://:/?op=MKDIRS[&permission=]"`
eq:
`curl -i -X PUT "http://192.168.0.110:50070/webhdfs/v1/input2?op=MKDIRS"`
### 重名命文件、文件夹
`curl -i -X PUT ":/webhdfs/v1/?op=RENAME&destination="`
### 删除文件/文件夹
`curl -i -X DELETE "http://:/webhdfs/v1/?op=DELETE [&recursive=]"`
### 文件/ 文件夹的状态信息
`curl -i “http://:/webhdfs/v1/?op=GETFILESTATUS"`
### 目录列表
`curl -i "http://:/webhdfs/v1/?op=LISTSTATUS"`
### 获取目录的上下文环境汇总信息
`curl -i "http://:/webhdfs/v1/?op=GETCONTENTSUMMARY"`
### 获取Check Sum File
`curl -i "http://:/webhdfs/v1/?op=GETFILECHECKSUM"`
### 获取Home 目录
`curl -i "http://:/webhdfs/v1/?op=GETHOMEDIRECTORY"`
### 设置权限
`curl -i -X PUT "http://:/webhdfs/v1/?op=SETPERMISSION [&permission=]"`
### 设置所有者
`curl -i -X PUT "http://:/webhdfs/v1/?op=SETOWNER [&owner=][&group=]"`
### 设置备份
`curl -i -X PUT "http://:/webhdfs/v1/?op=SETREPLICATION [&replication=]“"`
';