首页 > 代码库 > hadoop学习笔记-HDFS的REST接口

hadoop学习笔记-HDFS的REST接口

在学习HDFS的过程中,重点关注了HDFS的REST访问接口。以前对REST的认识非常笼统,这次通过对HDFS的REST接口进行实际操作,形成很直观的认识。


1? 写文件操作

写文件操作分为两个命令,第一个命令先产生一个重定向(TEMPORARY_REDIRECT)响应报文,响应报文中的Location字段即为重定向的目标地址,这个目标地址指向的就是分配的datanode,用以存储后面写入的内容。第二个命令的URL写的就是第一个命令重定向的目标地址。(注意:在路径前面需要加“/webhdfs/v1/”)


yanghao@yanghao-ubuntu:~/software/hadoop-2.8.0$ curl -i -X PUT "http://localhost:50070/webhdfs/v1/user/yanghao/LICENSE.txt?op=CREATE&user.name=yanghao"HTTP/1.1 307 TEMPORARY_REDIRECT

Cache-Control: no-cache

Expires: Sun, 07 May 2017 10:18:42 GMT

Date: Sun, 07 May 2017 10:18:42 GMT

Pragma: no-cache

Expires: Sun, 07 May 2017 10:18:42 GMT

Date: Sun, 07 May 2017 10:18:42 GMT

Pragma: no-cache

X-FRAME-OPTIONS: SAMEORIGIN

Set-Cookie: hadoop.auth="u=yanghao&p=yanghao&t=simple&e=1494188322758&s=nlk+q58rkaa2kR3hDByG0P7HIgY="; Path=/; HttpOnly

Location: http://yanghao-ubuntu:50075/webhdfs/v1/user/yanghao/LICENSE.txt?op=CREATE&user.name=yanghao&namenoderpcaddress=localhost:9000&createflag=&createparent=true&overwrite=false

Content-Type: application/octet-stream

Content-Length: 0

Server: Jetty(6.1.26)


yanghao@yanghao-ubuntu:~/software/hadoop-2.8.0$ curl -i -X PUT -T LICENSE.txt "http://yanghao-ubuntu:50075/webhdfs/v1/user/yanghao/LICENSE.txt?op=CREATE&user.name=yanghao&namenoderpcaddress=localhost:9000&createflag=&createparent=true&overwrite=false"


HTTP/1.1 100 Continue


HTTP/1.1 201 Created

Location: hdfs://localhost:9000/user/yanghao/LICENSE.txt

Content-Length: 0

Connection: close



2 读文件操作

读文件命令需要使用如下OPEN命令,就会把文件内容打印出来。

yanghao@yanghao-ubuntu:~/software/hadoop-2.8.0$ curl -i -L "http://localhost:50070/webhdfs/v1/user/yanghao/LICENSE.txt?op=OPEN"



REST的理解

REST是一种设计风格,设计对外开放接口的风格。对应到具体应用中,URI定义了资源的标识,对于URI指向的资源,可以通过PUT,GET等操作进行读写访问,信息的表述采用HTML/xml/JSON等。


hadoop学习笔记-HDFS的REST接口