如何将参数传递给 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 .
可以通过不同的方式指定属性:
~/.dt/dt-site.xml
:默认情况下,apex cli 将查找此文件(~ 是您的主目录)。您应该使用此文件来获取环境中所有应用程序所共有的属性。
apex cli 上的 -conf
选项:apex cli 上的启动命令提供-conf
选项来指定属性。您需要指定配置 xml 的路径。您应该使用此文件来获取特定于特定应用程序或特定于本次应用程序启动的属性。-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/