4

COSMOS アカウントがcosmos.lab.fi-ware.orgあり、クラスターにローカルでファイルをロードできます。

ただし、リモートでの読み込みに問題があります。ガイド サイトに従った手順は次のとおりです。

ただし、WebHDFS/HttpFS RESTful API を使用すると、FI-LAB で Cosmos のグローバル インスタンスの外部に存在するファイルをアップロードできます。次の例では、WebHDFS の代わりに HttpFS を使用し (TCP/50070 の代わりに TCP/14000 ポートを使用)、curl を HTTP クライアントとして使用します (ただし、アプリケーションは独自の HTTP クライアントを実装する必要があります)。

[remote-vm]$ curl -i -X PUT "http://cosmos.lab.fi-ware.org:14000/webhdfs/v1/user/$COSMOS_USER/input_data?op=MKDIRS&user.name=$COSMOS_USER"
[remote-vm]$ curl -i -X PUT ..etc
[remote-vm]$ curl -i -X PUT -T etc..

ご覧のとおり、WebHDFS 仕様に記載されているように、データのアップロードは 2 段階の操作です。API の最初の呼び出しは、新しいファイルの作成とその名前を指定して、ヘッド ノードと直接対話します。次に、ヘッド ノードは一時的なリダイレクション応答を送信し、データを格納する必要があるクラスター内のすべての既存のノードの中からデータ ノードを指定します。これが 2 番目のステップのエンドポイントです。それにもかかわらず、HttpFS ゲートウェイは同じ API を実装しますが、その内部動作が変更され、ヘッド ノード自体を指すようにリダイレクトされます。

ただし、これらのコマンドを実行すると、サーバー エラーが返されます。1 つの例を次に示します。

~ kari$ -bash: user.name=kdempsey: command not found
HTTP/1.1 100 Continue

HTTP/1.1 401 Unauthorized
Server: Apache-Coyote/1.1
Set-Cookie: hadoop.auth=""; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/
Content-Type: text/html;charset=utf-8
Content-Length: 1275
Date: Fri, 05 Jun 2015 12:58:20 GMT

Apache Tomcat/6.0.32 - Error report<!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}-->

HTTP Status 401 - org.apache.hadoop.security.authentication.client.AuthenticationException: Anonymous requests are disallowed

type Status report

message org.apache.hadoop.security.authentication.client.AuthenticationException: Anonymous requests are disallowed

description This request requires HTTP authentication (org.apache.hadoop.security.authentication.client.AuthenticationException: Anonymous requests are disallowed).

Apache Tomcat/6.0.32

もう 1 つは 500 サーバー エラーでした。ファイルを COSMOS 共有リソースにリモートでロードするコマンドを教えてください。

最終的には、InfluxDB からデータを取得して COSMOS にロードしたいと考えています。可能であれば、REST 呼び出し (そうでない場合は Python) を介して実行したいと考えています。

どうもありがとう、カリ

4

1 に答える 1

0

roor ユーザーとして、あなたのアカウントをテストしましたが、完全に機能します。

$ curl -i -X PUT "http://cosmos.lab.fi-ware.org:14000/webhdfs/v1/user/kdempsey/frbtest_deleteme?op=MKDIRS&user.name=kdempsey"
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: hadoop.auth="u=kdempsey&p=kdempsey&t=simple&e=1434045807412&s=iFdK86PWTbJykXymYLS9qZcIE2g="; Version=1; Path=/
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 11 Jun 2015 08:03:27 GMT

{"boolean":true}
$ curl -i -X GET "http://cosmos.lab.fi-ware.org:14000/webhdfs/v1/user/kdempsey/?op=LISTSTATUS&user.name=kdempsey"
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: hadoop.auth="u=kdempsey&p=kdempsey&t=simple&e=1434045881826&s=GkLYQ/BqnBNPFBNL3ZPwkxcwbx8="; Version=1; Path=/
Content-Type: application/json
Transfer-Encoding: chunked
Date: Thu, 11 Jun 2015 08:04:41 GMT

{"FileStatuses":{"FileStatus":[{"pathSuffix":"frbtest_deleteme","type":"DIRECTORY","length":0,"owner":"kdempsey","group":"kdempsey","permission":"755","accessTime":0,"modificationTime":1434009807428,"blockSize":0,"replication":0},{"pathSuffix":"input","type":"DIRECTORY","length":0,"owner":"kdempsey","group":"kdempsey","permission":"755","accessTime":0,"modificationTime":1433508554303,"blockSize":0,"replication":0},{"pathSuffix":"input_data","type":"DIRECTORY","length":0,"owner":"kdempsey","group":"kdempsey","permission":"755","accessTime":0,"modificationTime":1433508958231,"blockSize":0,"replication":0}]}}

ご覧のとおり、フォルダーを作成し、サブディレクトリのリストを取得するためにfrbtest_deletemeHDFS ユーザー空間 ( ) をリストしました。/user/kdempseyその中には、 がありますfrbtest_deleteme

于 2015-06-11T08:06:41.493 に答える