我成为 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 中,然后像 hadoop jar <my_flow_jar.jar> ...
一样运行这个 jar ?
编辑:
这是 h2o R 包 documentation . R API 允许您加载 H2O 模型,因此我尝试加载流(就好像它是 H2O 模型一样),不出所料它没有工作(失败并返回 water.api.FSIOException
),因为它在技术上不是 h2o 模型。
最佳答案
这真的很晚了,但是(现在)h2o 流模型有自动生成的 java 代码,代表可以剪切和粘贴的训练模型(称为 POJO)(比如从远程 hadoop session 到本地 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 session 是远程的,将示例中的“localhost”替换为您的(远程)流 session 的 IP 地址。
关于hadoop - 自动化 H2O 流量 : run flow from CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34340698/