自动化H2O流程:从CLI运行流程

时间:2015-12-17 17:27:08

标签: hadoop h2o

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

我正在将模型(内置流程)转移到生产中,我想知道如何自动化它。使用R api,在构建并保存模型之后,我可以轻松地将其加载到R中并仅通过从CLI运行CREATE FUNCTION executePython() RETURNS VOID AS $$ #!/bin/sh python /path/to/MyApp $$ LANGUAGE plsh; 来对新数据进行预测,但我不确定如何做某事与flow类似,特别是因为它在Hadoop上运行。

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

  • 预处理数据,将其移至hdfs
  • 在hadoop上启动h2o,nohup Rscript <the_file> &运行IP地址h2o,手动逐个单元地运行流程
  • 运行预测后清理和最后步骤

这是一个非常侵入式的制作过程,我想把所有的目标都捆绑在一起,但是流程让它变得相当困难。提炼问题:有没有办法将流量压缩到hadoop jar中,然后运行像nslookup这样的jar?

编辑:

这里是h2o R包documentation。 R API允许你加载一个H2O模型,所以我尝试加载流程(好像它是一个H2O模型),并且毫不奇怪它不起作用(失败了hadoop jar <my_flow_jar.jar> ...),因为它不是技术上是一个h2o模型。

1 个答案:

答案 0 :(得分: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会话是远程的,请替换&#34; localhost&#34;在示例中使用(远程)流会话的IP地址。