hadoop學習筆記-HDFS的REST接口
在學習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接口