3

我成为 h2o 用户已经一年半多了,但我的工作仅限于 R api;h2o flow对我来说相对较新。如果它对您来说也是新的,它基本上是 0xdata 的 iPython 版本,但是 iPython 让您可以将笔记本导出到脚本。我在流程中找不到类似的选项...

我正在将模型(内置流程)移动到生产中,我想知道如何自动化它。使用 R api,在模型构建和保存后,我可以轻松地将其加载到 R 中,并通过nohup Rscript <the_file> &从 CLI 运行一个简单的对新数据进行预测,但我不确定如何使用 flow 做类似的事情,尤其是因为它在 Hadoop 上运行。

按照目前的情况,每次运行都分为三个部分,流程在中间创建了一个相对笨重的过程:

  • 预处理数据,将其移动到 hdfs
  • 在 hadoop 上启动 h2o,nslookup运行 h2o 的 IP 地址,逐个单元地手动运行流
  • 运行预测后清理和最后步骤

这是一个非常侵入性的制作过程,我想把所有的结果都绑起来,但是流程让它变得相当困难。提炼出这个问题:有没有办法将流压缩到一个hadoop jar中,然后像这样运行jar hadoop jar <my_flow_jar.jar> ...

编辑:

这是 h2o R 包文档。R API 允许您加载 H2O 模型,因此我尝试加载流程(就好像它是 H2O 模型一样),不出所料,它不起作用(以 a 失败water.api.FSIOException),因为它在技术上不是 h2o 模型。

4

1 回答 1

2

这真的很晚了,但是(现在)h2o 流模型具有自动生成的 java 代码,代表可以剪切和粘贴的训练模型(称为 POJO)(例如从远程 hadoop 会话到本地 java 文件)。有关如何使用 java 对象的快速入门教程,请参见此处(https://h2o-release.s3.amazonaws.com/h2o/rel-turing/1/docs-website/h2o-docs/pojo-quick-start。 html ). 您必须参考 h2o java api ( https://h2o-release.s3.amazonaws.com/h2o/rel-turing/8/docs-website/h2o-genmodel/javadoc/hex/genmodel/easy/ EasyPredictModelWrapper.html ) 开始自定义您希望如何使用 POJO,但实际上您将它用作一个黑盒,对正确格式化的输入进行预测。

假设您的 hadoop 会话是远程的,请将示例中的“localhost”替换为您的(远程)流会话的 IP 地址。

于 2017-07-07T08:44:14.190 回答