Taiwan Hadoop Forum

台灣 Hadoop 技術討論區
現在的時間是 2022-06-26, 03:24

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 5 篇文章 ] 
發表人 內容
 文章主題 : 關於 webhdfs create a file
文章發表於 : 2013-09-27, 15:15 
離線

註冊時間: 2013-07-17, 09:56
文章: 7
請問各位大大 :
如果我想在windows底下透過php語法create一個檔案到HDFS上,
那目前這個程式碼測出來毫無反應且無任何錯誤訊息,
想請教各位前輩指教!

代碼:
<?php
$url = "http://140.128.80.118:50070/webhdfs/v1/tmp/123/123.txt?user.name=hadoop&user.passward=hadoop&op=CREATE$overwrite=true";
$fp=fopen("D:\\123.txt",'r');

$chNN = curl_init();

curl_setopt($chNN, CURLOPT_URL, $url);
curl_setopt($chNN, CURLOPT_HEADER, true);
curl_setopt($chNN, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($chNN, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chNN, CURLOPT_PUT, true);

$chDN = curl_copy_handle($chNN);

$response = curl_exec($chNN);
$responseInfo = curl_getinfo($chNN);
curl_close($chNN);

echo $response;

if ($responseInfo['http_code'] == 307) {
    curl_setopt($chDN, CURLOPT_URL, $responseInfo['redirect_url']);
    curl_setopt($chDN, CURLOPT_INFILE, $fp);
   
    $response = curl_exec($chDN);
    $responseInfo = curl_getinfo($chDN);
   
    fclose($fp);
    curl_close($chDN);
   
    echo $response;
}
?>


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 關於 webhdfs create a file
文章發表於 : 2013-09-27, 17:40 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
我想先確認一下,WebHDFS 是否有打開,亦即
hdfs-site.xml 有把 dfs.webhdfs.enabled 設成 true 嘛?

- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 關於 webhdfs create a file
文章發表於 : 2013-09-28, 14:46 
離線

註冊時間: 2013-07-17, 09:56
文章: 7
我一開始有先在hdfs-site.xml 做以下這個程式碼設定!

<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<description>to enable webhdfs</description>
</property>


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 關於 webhdfs create a file
文章發表於 : 2013-09-30, 00:52 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
我試著追了一下 redirect_url 是空的,你要不要用 var_dump($responseInfo); 先觀察一下呢?
目前我還沒有找到應該是哪個函數才能正常取得 DataNode 的函數寫法。

代碼:
$ php webhdfs.php
http://127.0.0.1:50070/webhdfs/v1/user/jazz/tmp?user.name=jazz&op=MKDIRS
[1] mkdir : HTTP/1.1 100 Continue

HTTP/1.1 200 OK
Content-Type: application/json
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: hadoop.auth="u=jazz&p=jazz&t=simple&e=1380576398404&s=fb6wLHorSWp82xY8tUXAth14TYg=";Path=/
Transfer-Encoding: chunked
Server: Jetty(6.1.26)

{"boolean":true}
http://127.0.0.1:50070/webhdfs/v1/user/jazz/tmp/123.txt?user.name=jazz&op=CREATE&overwrite=true
[2] CREATE :
[3] Upload file :
array(22) {
  ["url"]=>
  string(95) "http://127.0.0.1:50070/webhdfs/v1/user/jazz/tmp/123.txt?user.name=jazz&op=CREATE&overwrite=true"
  ["content_type"]=>
  string(24) "application/octet-stream"
  ["http_code"]=>
  int(307)
  ["header_size"]=>
  int(242)
  ["request_size"]=>
  int(176)
  ["filetime"]=>
  int(-1)
  ["ssl_verify_result"]=>
  int(0)
  ["redirect_count"]=>
  int(0)
  ["total_time"]=>
  float(0.004665)
  ["namelookup_time"]=>
  float(6.5E-5)
  ["connect_time"]=>
  float(8.7E-5)
  ["pretransfer_time"]=>
  float(0.000107)
  ["size_upload"]=>
  float(5)
  ["size_download"]=>
  float(0)
  ["speed_download"]=>
  float(0)
  ["speed_upload"]=>
  float(1071)
  ["download_content_length"]=>
  float(-1)
  ["upload_content_length"]=>
  float(-1)
  ["starttransfer_time"]=>
  float(0.001418)
  ["redirect_time"]=>
  float(0)
  ["certinfo"]=>
  array(0) {
  }
  ["redirect_url"]=>
  string(0) ""
}
bool(false)


- Jazz


回頂端
 個人資料 E-mail  
 
 文章主題 : Re: 關於 webhdfs create a file
文章發表於 : 2013-09-30, 20:09 
離線

註冊時間: 2009-11-09, 19:52
文章: 2897
代碼:
##### 產生目錄前 #####

jazz@node2:~/hadoop_labs$ hadoop fs -ls /
Found 1 items
drwxr-xr-x   - jazz supergroup          0 2013-09-29 16:00 /home

##### 用 curl 呼叫 webhdfs MKDIRS 指令產生 /user/$ID/tmp #####

jazz@node2:~/hadoop_labs$ curl -i -X PUT "http://127.0.0.1:50070/webhdfs/v1/user/jazz/tmp?user.name=jazz&op=MKDIRS"
HTTP/1.1 200 OK
Content-Type: application/json
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: hadoop.auth="u=jazz&p=jazz&t=simple&e=1380578411435&s=olHoWgXK+36P4cJAIO3U4lwwa3E=";Path=/
Transfer-Encoding: chunked
Server: Jetty(6.1.26)

{"boolean":true}

##### 檢查產生目錄是否成功呢? #####

jazz@node2:~/hadoop_labs$ hadoop fs -ls /
Found 2 items
drwxr-xr-x   - jazz supergroup          0 2013-09-29 16:00 /home
drwxr-xr-x   - jazz supergroup          0 2013-09-30 12:00 /user
jazz@node2:~/hadoop_labs$ hadoop fs -lsr
drwxr-xr-x   - jazz supergroup          0 2013-09-30 12:00 /user/jazz/tmp

##### 用 curl 呼叫 webhdfs CREATE 指令產生 /user/$ID/tmp/123.txt #####

jazz@node2:~/hadoop_labs$ curl -i -X PUT "http://127.0.0.1:50070/webhdfs/v1/user/jazz/tmp/123.txt?user.name=jazz&op=CREATE&overwrite=true"
HTTP/1.1 307 TEMPORARY_REDIRECT
Content-Type: application/octet-stream
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: hadoop.auth="u=jazz&p=jazz&t=simple&e=1380578621165&s=cAabmAuV1DD1fkf+QSqXfSbDz+M=";Path=/
Location: http://node2:50075/webhdfs/v1/user/jazz/tmp/123.txt?op=CREATE&user.name=jazz&overwrite=true
Content-Length: 0
Server: Jetty(6.1.26)

##### 得到 REDIRECT 的 Location (URL) #####
##### 產生要上傳的檔案 /tmp/123.txt #####
jazz@node2:~/hadoop_labs$ echo "123" > /tmp/123.txt
##### 用 curl 上傳檔案,並呼叫 DataNode 產生檔案的網址 #####
jazz@node2:~/hadoop_labs$ curl -i -X PUT -T /tmp/123.txt "http://node2:50075/webhdfs/v1/user/jazz/tmp/123.txt?op=CREATE&user.name=jazz&overwrite=true"
HTTP/1.1 100 Continue

HTTP/1.1 201 Created
Content-Type: application/octet-stream
Location: webhdfs://0.0.0.0:50070/user/jazz/tmp/123.txt
Content-Length: 0
Server: Jetty(6.1.26)

##### 檢查產生檔案是否成功呢? #####

jazz@node2:~/hadoop_labs$ hadoop fs -lsr
drwxr-xr-x   - jazz supergroup          0 2013-09-30 12:08 /user/jazz/tmp
-rw-r--r--   1 jazz supergroup          4 2013-09-30 12:08 /user/jazz/tmp/123.txt


感覺上您必須要有辦法取得類似 curl 得到的 TEMPORARY_REDIRECT 這裡顯示的 Location。才有辦法正常產生檔案。

引言回覆:
HTTP/1.1 307 TEMPORARY_REDIRECT
Content-Type: application/octet-stream
Expires: Thu, 01-Jan-1970 00:00:00 GMT
Set-Cookie: hadoop.auth="u=jazz&p=jazz&t=simple&e=1380578621165&s=cAabmAuV1DD1fkf+QSqXfSbDz+M=";Path=/
Location: http://node2:50075/webhdfs/v1/user/jazz ... write=true
Content-Length: 0
Server: Jetty(6.1.26)


- Jazz


回頂端
 個人資料 E-mail  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 5 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
正體中文語系由 竹貓星球 維護製作