【问题标题】:Unable to importfiles and parse files from s3 bucket to h2o flow version 3.22.0.2无法从 s3 存储桶导入文件和解析文件到 h2o 流版本 3.22.0.2
【发布时间】:2018-12-07 06:13:36
【问题描述】:

我曾经通过以下格式的文件路径将数据文件从 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"]

还在页面底部显示“请求 /3/ParseSetup”,但没有任何反应。即使它在 20 分钟后也没有给出超时错误。

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

关于没有此问题的版本 (3.18.0.10) 的注意事项:

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

setupParse source_frames: ["s3a://ACCESS KEY:SECRET KEY@parvin-us-west1-data/Prod/154351418084_train/data.csv"]

不同之处在于它还包括url的凭据部分。

更新:

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

【问题讨论】:

  • 您能否测试访问以下公开可用的文件并让我知道您是否仍有问题?所以在你点击Import Files 后粘贴http://h2o-public-test-data.s3.amazonaws.com/smalldata/prostate/prostate.csv 看看是否有效。还请说明您是如何启动 h2o 的:您是否使用了 h2o.init() - 带有哪些参数。还是您以其他方式开始。谢谢!
  • 是的,它适用于提供的公共文件路径。当前版本似乎不接受 s3a 协议。在这个版本中,如何从 s3 传递私有文件路径?我正在使用 h2o.jar 来启动和运行 h2o flow
  • 您可以下载日志并将其发送到 support@h2o.ai 吗?谢谢!
  • @Lauren,您想要一个特殊的主题或标签让电子邮件可见吗? (我也会附上这个帖子的链接。)
  • 没有特殊标签,我们将识别该问题。谢谢!

标签: amazon-s3 h2o


【解决方案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 访问密钥和秘密访问密钥(其中 AWS_ACCESS_KEY 代表您的用户名,AWS_SECRET_KEY 代表您的密码)。

要从 Flow API 导入数据: importFiles [ "s3://&lt;AWS_ACCESS_KEY&gt;:&lt;AWS_SECRET_KEY&gt;@bucket/path/to/file.csv" ]

【讨论】:

  • 感谢您的回复。我在 3.22.0.2 版本上修复了 importfile 的问题。现在通过: importFiles ["s3a://ACCESS KEY:SECRET KEY@parvin-us-west1-data/Prod/154351418084_train/"] 它可以导入文件。但是,之后它无法解析文件。您能否确认您也能够使用这种文件路径格式解析文件?问题是当我在 3.22 流程中按下(解析这些文件)时,source_frames 不包括 url 的凭据部分。而在 3.18 中,setupParse 的源文件也包含凭据。
  • @ParvinDadgar 是的,我能够解析文件。您能否更新您的问题,以便包含您看到的错误消息?这可能有助于了解我们的步骤可能有所不同。谢谢!
  • 当然。按下后,解析这些文件,我得到具有以下内容的单元格:setupParse source_frames:[“s3a://parvin-us-west1-data/Prod/154351418084_train/data.csv”]。在页面底部显示:请求/3/ParseSetup。它在这个阶段停留了 20 分钟。并且在日志中它在 POST /3/ParseSetup 之后没有显示任何内容,参数:{source_frames=["s3a://parvin-us-west1-data/Prod/154351418084_train/data.csv"]。在 3.18 版本中,我曾经得到: setupParse source_frames: [ "s3a://ACCESS KEY:SECRET KEY@parvin-us-west1-data/Prod/154351418084_train/data.csv" ] 效果很好。
猜你喜欢
  • 2022-08-04
  • 1970-01-01
  • 2017-02-16
  • 1970-01-01
  • 2018-03-25
  • 1970-01-01
  • 2017-11-23
  • 2018-04-04
  • 2018-05-05
相关资源
最近更新 更多