1. 程式人生 > >hadoop學習筆記-HDFS的REST接口

hadoop學習筆記-HDFS的REST接口

字段 edi -o created hadoop ftw rar hdfs lang

在學習HDFS的過程中,重點關註了HDFS的REST訪問接口。以前對REST的認識非常籠統,這次通過對HDFS的REST接口進行實際操作,形成很直觀的認識。


1? 寫文件操作

寫文件操作分為兩個命令,第一個命令先產生一個重定向(TEMPORARY_REDIRECT)響應報文,響應報文中的Location字段即為重定向的目標地址,這個目標地址指向的就是分配的datanode,用以存儲後面寫入的內容。第二個命令的URL寫的就是第一個命令重定向的目標地址。(註意:在路徑前面需要加“/webhdfs/v1/”)


[email protected]:~/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)


[email protected]:~/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命令,就會把文件內容打印出來。

[email protected]:~/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接口