Hadoop 第六课 WebHDFS REST API

说明:WebHDFS观念是基于HTTP操作,比如GET、PUT、POST和DELETE。像OPEN、GETFILESTATUS、LISTSTATUS的操作是使用HTTP GET,其它的像CREAT、MKDIRS、RENAME、SETPERMISSION是依赖于HTTP PUT类型。APPEND操作时基于HTTP POST类型,然而,DELETE是使用HTTP DELETE。

1$ curl -V 检查是否安装  没有的话 sudo apt-get install curl

2 在hdfs-site.xml 配置

<!-- 

访问namenode的hdfs使用50070端口,访问datanode的webhdfs使用50075端口。访问文件、文件夹信息使用namenode的IP和50070端口,,访问文件内容或者进行打开、上传、修改、下载等操作使用datanode的IP和50075端口。要想不区分端口,直接使用namenode的IP和端口进行所有的webhdfs操作,就需要在所有的datanode上都设置hefs-site.xml中的dfs.webhdfs.enabled为true。

-->

<property>

          <name>dfs.webhdfs.enabled</name>

           <value>true</value>

</property>

<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

3执行Webhdfs命令

3.1 命令形式
$curl [-i /-X/-u/-T] [PUT] "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?[user.name=<user>&op=<opreation>[&permission=<permission>]....."
3.2 对文件和路径的操作
创建并写一个文件
 curl -i -X PUT "http://localhost:50070/webhdfs/v1/<PATH>?op=CREATE
 [&overwrite=<true|false>][&blocksize=<LONG>][&replication=<SHORT>]
 [&permission=<OCTAL>][&buffersize=<INT>]“
 curl -i -X PUT -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?
 op=CREATE...“
 注意这个地方填入的是DataNode的信息

打开并读取一个文件
 curl -i -L "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=OPEN
 [&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]"

创建一个目录
 curl -i -X PUT "http://<HOST>:<PORT>/<PATH>?op=MKDIRS[&permission=<OCTAL>]"

重名命文件、文件夹
 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 “<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILESTATUS"

目录列表
 curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS"

3.3 对文件系统的操作

获取目录的上下文环境汇总信息
 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>]"


3.4  WebHDFS提供的操作列表功能清单:

HTTP GET
• OPEN (see FileSystem.open)
• GETFILESTATUS (see FileSystem.getFileStatus)
• LISTSTATUS (see FileSystem.listStatus)
• GETCONTENTSUMMARY (see FileSystem.getContentSummary)
• GETFILECHECKSUM (see FileSystem.getFileChecksum)
• GETHOMEDIRECTORY (see FileSystem.getHomeDirectory)
• GETDELEGATIONTOKEN (see FileSystem.getDelegationToken)
• HTTP PUT
• CREATE (see FileSystem.create)
• MKDIRS (see FileSystem.mkdirs)
• RENAME (see FileSystem.rename)
• SETREPLICATION (see FileSystem.setReplication)
• SETOWNER (see FileSystem.setOwner)
• SETPERMISSION (see FileSystem.setPermission)
• SETTIMES (see FileSystem.setTimes)
• RENEWDELEGATIONTOKEN (see DistributedFileSystem.renewDelegationToken)
• CANCELDELEGATIONTOKEN (see DistributedFileSystem.cancelDelegationToken)
• HTTP POST
• APPEND (see FileSystem.append)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值