无法导入文件并将文件从s3存储桶解析到h2o流版本3.22.0.2

时间:2018-12-04 03:27:32

标签: amazon-s3 h2o

我曾经传递以下格式的文件路径,以将数据文件从s3存储桶导入到H2O流(版本3.18.0.10):

importFiles ["s3a://ACCESS KEY:SECRET KEY@parvin-us-west1-data/Prod/154351418084_train/"]

更新到版本 3.22.0.2 后,出现以下错误,并且文件路径相同。

Error calling GET /3/ImportFiles?path=s3a%3A%2F%2ACCESS KEY%3SECRET KEY%40parvin-us-west1-data%2FProd%2F154351418084_train%2F
--------------------
HTTP connection failure: status=error, code=500, error=Server Error
--------------------

现在看来,它期望使用不同的s3文件路径格式,是否有任何有关如何将带有凭据的s3文件路径传递到最新版本的h2o的文档?

更新:

更改配置后,我可以导入文件。运行importfile单元后,将显示以下内容。

导入的1/1个文件。

文件s3a://parvin-us-west1-data/Prod/154351418084_train/data.csv

但是,当我按“解析这些文件”时,它将显示具有以下内容的新单元格,但没有任何进展:

setupParse source_frames:[“ s3a://parvin-us-west1-data/Prod/154351418084_train/data.csv”]

页面底部也显示“ Requesting / 3 / ParseSetup”,但什么也没有发生。即使20分钟后它也没有给出超时错误。

终端日志的最后一行是: 1283#71051-12信息:发布/ 3 / ParseSetup,参数:{source_frames = [“ s3a://parvin-us-west1-data/Prod/154351418084_train/data.csv”]}

有关版本(3.18.0.10)的注释,没有出现此问题:

在按下“解析这些文件”之后: 它会在单元格中提示以下信息:

setupParse source_frames:[“ s3a://访问密钥:秘密密钥@ parvin-us-west1-data / Prod / 154351418084_train / data.csv”]

区别在于它还包含url的凭据部分。

更新:

我还尝试了以独立模式启动h2o(使用core-site.xml传递凭据)。 即使在这种情况下,导入文件后也无法解析文件。

1 个答案:

答案 0 :(得分:1)

文件格式应该相同(请参阅文章底部的选项3),我进行了快速测试,并使用importFiles [ "s3a://<AWS_ACCESS_KEY>:<AWS_SECRET_KEY>@bucket/path/to/file.csv" ]对我有用。

我会检查您的连接是否良好,群集状态以及是否可以通过其他任何方式访问文件。

这是H2O running in standalone mode当前文档的内容,您也可以转到此链接查看多节点模式:

使用简单的Java启动命令以独立模式运行H2O时,我们可以通过两种方式传递S3凭据。

您可以通过创建core-site.xml文件并使用-hdfs_config标志将其以独立模式传递。有关示例core-site.xml文件,请参阅Core-site.xml。

  1. 编辑core-site.xml文件中的属性,以包括您的访问密钥ID和访问密钥,如以下示例所示:

<property> <name>fs.s3.awsAccessKeyId</name> <value>[AWS SECRET KEY]</value> </property>

<property> <name>fs.s3.awsSecretAccessKey</name> <value>[AWS SECRET ACCESS KEY]</value> </property>

  1. 通过在命令行中输入以下内容来启动配置文件core-site.xml: java -jar h2o.jar -hdfs_config core-site.xml

  2. 使用importFile和S3 URL路径s3://bucket/path/to/file.csv导入数据。您可以在Flow,R或Python的S3 URL中传递Minio Access Key和Secret Access Key(其中AWS_ACCESS_KEY代表您的用户名,AWS_SECRET_KEY代表您的密码)。

要从Flow API导入数据,请执行以下操作: importFiles [ "s3://<AWS_ACCESS_KEY>:<AWS_SECRET_KEY>@bucket/path/to/file.csv" ]