[TOC] > [参考](https://hadoop.apache.org/docs/r3.1.0/hadoop-project-dist/hadoop-hdfs/WebHDFS.html) ## curl操作webhdfs ### 创建并写入文件 需要分两步 1. `curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=CREATE [&overwrite=<true |false>][&blocksize=<LONG>][&replication=<SHORT>] [&permission=<OCTAL>][&buffersize=<INT>][&noredirect=<true|false>]"` 2. `curl -i -X PUT -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?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://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=APPEND[&buffersize=<INT>]"` `curl -i -X POST -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=APPEND..."` 注意该条命令获得的是DataNode的信息。 ### 打开并读取一个文件 `curl -i -L "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=OPEN[&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]"` eq: `http://192.168.0.110:50070/webhdfs/v1/input/hadoop-im_user-datanode-node-3.log?op=open` ### 创建一个目录 `curl -i -X PUT "http://<HOST>:<PORT>/<PATH>?op=MKDIRS[&permission=<OCTAL>]"` eq: `curl -i -X PUT "http://192.168.0.110:50070/webhdfs/v1/input2?op=MKDIRS"` ### 重名命文件、文件夹 `curl -i -X PUT "<HOST>:<PORT>/webhdfs/v1/<PATH>?op=RENAME&destination=<PATH>"` ### 删除文件/文件夹 `curl -i -X DELETE "http://<host>:<port>/webhdfs/v1/<path>?op=DELETE [&recursive=<true|false>]"` ### 文件/ 文件夹的状态信息 `curl -i “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILESTATUS"` ### 目录列表 `curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS"` ### 获取目录的上下文环境汇总信息 `curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETCONTENTSUMMARY"` ### 获取Check Sum File `curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILECHECKSUM"` ### 获取Home 目录 `curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETHOMEDIRECTORY"` ### 设置权限 `curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETPERMISSION [&permission=<OCTAL>]"` ### 设置所有者 `curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETOWNER [&owner=<USER>][&group=<GROUP>]"` ### 设置备份 `curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETREPLICATION [&replication=<SHORT>]“"`