java - 如何将参数传递给 Apache Apex 中的 application.java 类?

标签 java apache-apex

如何将参数传递给 Application.java 类?就像我们如何在 java 的 main 方法中传递 (String[] args) 一样?

找不到任何引用。有人可以分享这方面的知识吗?

非常感谢。

最佳答案

您可以将参数作为配置传递。此配置将作为参数传递给 Application.java 中的 populateDAG() 方法。

配置是org.apache.hadoop.conf.Configuration。您可以将其指定为 xml。 xml语法请引用https://hadoop.apache.org/docs/r2.6.1/api/org/apache/hadoop/conf/Configuration.html .

可以通过不同的方式指定属性:

  1. ~/.dt/dt-site.xml:默认情况下,apex cli 将查找此文件(~ 是您的主目录)。您应该使用此文件来获取环境中所有应用程序所共有的属性。

  2. apex cli 上的
  3. -conf 选项:apex cli 上的启动命令提供 -conf 选项来指定属性。您需要指定配置 xml 的路径。您应该使用此文件来获取特定于特定应用程序或特定于本次应用程序启动的属性。

  4. -Dproperty-name=value:apex cli 上的启动命令提供 -D 选项来指定属性。您可以指定多个属性,例如 -Dproperty-name1=value1 -Dproperty-name2=value2 等。

指定运算符属性的语法如下:

<property>
      <name>dt.application.applicationName.operator.OperatorIdentifier.prop.property-name1</name>
      <value>value1</value>
</property>  

<property>
      <name>dt.application.applicationName.operator.OperatorIdentifier.prop.property-name2</name>
      <value>value2</value>
</property>  

OperatorIdentifier/name 是您在 populateDAG() 中用于 dag.addOperator() 的字符串标识符。

关于java - 如何将参数传递给 Apache Apex 中的 application.java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37840335/

相关文章:

java - @Produces 方法中 @Mock 的 Junit 4 范围

apache-apex - Apache Apex 中的运算符生命周期是什么?

apache-kafka - 如何使用 Apache Apex 对 Kafka 0.9 运算符进行单元测试?

java - java fxml中mysql的面积图

java - 关于 JTextField 和带数字的文本格式的问题?

java - Netbeans 8.2 : How to stop embedded Tomcat in Spring. 在 osx 上引导项目?

java - 如何退出 setValue Firebase 数据库?

apache - 无法启动 apache apex cli

rabbitmq - 如何在 DAG 中使用 Apache Apex Malhar RabbitMQ 运算符