与fiware cosmos的远程连接返回身份验证错误

与fiware cosmos的远程连接返回身份验证错误,fiware,filab,cosmos,Fiware,Filab,Cosmos,我们在COSMOS.lab.fi-ware.org上有一个COSMOS帐户,可以在集群本地加载文件 但是,我们在远程加载时遇到问题,我们遵循的说明如下所示: 但是,使用WebHDFS/HttpFS RESTful API将允许您上传 存在于FI-LAB中Cosmos全局实例之外的文件 下面的示例使用HttpFS而不是WebHDFS(使用TCP/14000) 端口,而不是TCP/50070),并且curl用作HTTP客户端(但是 应用程序应实现您自己的HTTP客户端): 如您所见,数据上传是一个两

我们在
COSMOS.lab.fi-ware.org上有一个COSMOS帐户,可以在集群本地加载文件

但是,我们在远程加载时遇到问题,我们遵循的说明如下所示:

但是,使用WebHDFS/HttpFS RESTful API将允许您上传 存在于FI-LAB中Cosmos全局实例之外的文件 下面的示例使用HttpFS而不是WebHDFS(使用TCP/14000) 端口,而不是TCP/50070),并且curl用作HTTP客户端(但是 应用程序应实现您自己的HTTP客户端):

如您所见,数据上传是一个两步操作,如上所述 在WebHDFS规范中:API的第一次调用 直接使用Head节点,指定新文件的创建及其 名称然后头部节点发送临时重定向响应, 在群集中所有现有节点中指定数据节点 必须存储数据的位置,即第二个 步尽管如此,HttpFS网关实现了相同的API,但是 内部行为更改,使重定向指向 头部节点本身

但是,当我们运行这些命令时,会返回服务器错误,例如:

~ 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
另一个是500服务器错误。请提供将文件远程加载到COSMOS共享资源的命令

最终,我们希望从XDB中获取数据并加载到COSMOS中,如果可能的话,我们希望通过REST调用(否则是python)来完成

非常感谢,,
Kari

作为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\u deleteme
文件夹,然后列出了您的HDFS用户空间(
/user/kdempsey
),以获得子目录列表;其中,您可以找到
frbtest\u deleteme

请编辑问题并输入您正在运行的完整命令?我只能看到
~kari$-bash:user.name=kdempsey:command-not found
,一方面它缺少大部分URL,另一方面表明您在URL的第一部分后面有一个回车符。[remote vm]$curl-I-X PUT”“[remote vm]$curl-I-X PUT-T unstructured_data.txt--header“内容类型:应用程序/八位字节流“----它不会让我放置超过2个链接,感谢您的关注。我显然将$COSMOS_用户编辑为我的用户。谢谢frb,加载单个文件的命令是什么?还有,有没有办法让它更安全?现在似乎任何人都可以调用你发布的命令,对吗?如果不是,请说明登录命令是什么-可能这是错误的。您好,frb,如果我没有使用提供重定向的命令,但当使用重定向时,它不会工作,例如CREATE命令。它似乎没有为数据节点返回不同的位置,请您建议命令以使文件加载正常工作?谢谢,对于其他尝试这样做的人,这可以避免重定向:curl-X PUT-L-b test.txt”“--header“Content Type:application/octet stream”-header“Transfer Encoding:chunked”-T“test.txt”。关于重定向,我们在端口14000上部署了一个HttpFS服务器,而不是在50070上部署了默认的HDFS服务。这样的HttpFS服务器作为网关工作,允许我们拥有单个IP地址,而不是每个节点一个IP地址(这是非常昂贵的)。这就是为什么您总是在重定向中看到相同的节点。
$ 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}]}}