-1

我开发了一个 Java 应用程序并将其部署到 BigInsights。但我不得不在代码中给出一些参数。如何从 BigInsights 应用程序页面获取它们?我在参数选项卡中发布 BigInsights 项目时添加了输入字段,但是如何将它们与应用程序绑定?我找不到任何关于此的文件。

4

3 回答 3

1

我知道这是一个老问题,但我刚刚在 BigInsights 上尝试过这种事情,所以这就是我迄今为止发现的。

我创建了一个非常基本的主要方法,它只记录参数。为了配置 BigInsights 应用程序以传递参数,我执行了以下操作。

在 BIApp/workflow/workflow.xml 中将 ${exampleParameter} 参数添加到我的 Java 操作

workflow.xml 编辑器将示例参数显示为 Java Action arg 值

在 XML 中看起来像这样。

<workflow-app name="wfapp" xmlns="uri:oozie:workflow:0.2">
    <start to="java-action"/>
    <action name="java-action">
        <java>
            <job-tracker>${jobTracker}</job-tracker>
            <name-node>${nameNode}</name-node>
            <main-class>com.ibm.uk.jamest.JavaAction</main-class>
            <arg>${exampleParameter}</arg>
        </java>
        <ok to="end" />
        <error to="kill" />
    </action>
    <!-- add actions here -->
    <kill name="kill">
        <message>error message[${wf:errorMessage(wf:lastErrorNode())}]</message>
    </kill>
    <end name="end"/>
</workflow-app>

BigInsights 应用程序发布向导会将其作为参数拾取,然后您可以根据需要对其进行编辑。

BigInsights 应用程序发布向导显示正在编辑的示例参数

结果在 BIApp/application/application.xml 中结束。(听起来这就是你所做的。)

<application-template xmlns="http://biginsights.ibm.com/application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <name>BIProject</name>
    <properties>
        <property isInputPath="false" isOutputPath="false" isRequired="true" label="Example parameter" name="exampleParameter" paramtype="TEXTAREA" uitype="textfield"/>
    </properties>
    <assets>
        <asset id="BIProject" type="WORKFLOW"/>
    </assets>
    <imagePath>defaultApp_L.png</imagePath>
    <categories>Sandbox</categories>
</application-template>

一旦应用程序发布,我可以在运行它时为示例参数提供一个值......它按预期传递给 main 方法!

BigInsights 控制台显示示例参数在运行应用程序时的显示方式

这些链接对于将这两个部分放在一起似乎很有用:

于 2014-11-06T14:50:45.227 回答
0

到目前为止,我注意到的唯一选项是,在部署应用程序后,您可以选择从 biginsights Web 控制台的“参数区域”中指定输入路径。

于 2014-03-11T19:40:10.613 回答
0

您是否从主要方法中检查了参数?也许你在那里找到配置的参数?

于 2014-09-10T14:55:16.967 回答