Application.java
クラスに引数を渡すにはどうすればよいですか?私たちがjavaのメインメソッドで(String[] args)
をどのように渡すか?Apache Apexのapplication.javaクラスに引数を渡すには?
参照が見つかりませんでした。誰かがこれに関する知識を共有できますか?
ありがとうございます。
Application.java
クラスに引数を渡すにはどうすればよいですか?私たちがjavaのメインメソッドで(String[] args)
をどのように渡すか?Apache Apexのapplication.javaクラスに引数を渡すには?
参照が見つかりませんでした。誰かがこれに関する知識を共有できますか?
ありがとうございます。
構成として引数を渡すことができます。この設定は、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
:デフォルトの頂点のCLIでは、このファイルを探します(〜自分のホームディレクトリである)
は、プロパティを指定することができるさまざまな方法があります。このファイルは、環境内のすべてのアプリケーションに共通するプロパティに使用する必要があります。
-conf
apex cliのオプション:apex cliのlaunchコマンドは、プロパティを指定するために-conf
オプションを提供します。設定XMLのパスを指定する必要があります。このファイルは、特定のアプリケーション固有のプロパティまたはこのアプリケーションの起動に固有のプロパティに対して使用する必要があります。
-Dproperty-name=value
:apex cliのlaunchコマンドは、プロパティを指定する-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 /名前は、文字列識別子ですpopulateDAG()のdag.addOperator()に使用します。
受け入れ答えはオペレータプロパティを指定する方法について詳しく説明したり~/.dt/dt-site.xml
またはApexのCLIを使用して、ここにあなたが(populateDag()
方法でIE)Application.java
に使用できるプロパティを指定する方法を簡単な一例ですので、 。
ファイル内のXMLでのプロパティを指定します。このようなresources/META-INF/properties.xml
:
<configuration>
<!-- Specify some arbitrary app configs -->
<property>
<name>prop1</name>
<value>val1</value>
</property>
<property>
<name>prop2</name>
<value>val2</value>
</property>
<!-- Specify some other configs, i.e. operator properties -->
<property>
<name>dt.application.applicationName.operator.OperatorIdentifier.prop.property-name1</name>
<value>value1</value>
</property>
</configuration>
次に、あなたのApplication.java
あなたはこのような特性を得ることができますに:この代わりに、オペレータのプロパティを使用しての
public class Application implements StreamingApplication
{
@Override
public void populateDAG(DAG dag, Configuration conf)
{
String prop1 = conf.get("prop1");
String prop2 = conf.get("prop2", "defaultValue"); // when the property is not set in XML, a default can be used
// populate your DAG here ...
}
}
をアプローチは、オペレータのコンストラクタなどでsetup()
メソッドが実行される前に、オペレータにプロパティが必要な場合に非常に便利です。
ありがとう@Yogi Devendra – Raja