分散プログラミングについての説明
1028 ワード
分散プログラミングについての説明
@(ブログ記事)[java|ビッグデータ]
分散システムでは、複数のマシン、複数のプロセスが同時にプログラムを実行しているため、それらの間で異なるJVMで実行されているため、それらの間の変数は共有できません.
stormを例にとると、プライマリ・プログラムに変数が設定されている場合、たとえば
boltでこの変数を取得することは不可能です.この変数は現在のJVMにしか保存されていないからです.したがって、boltでもこの変数を使用する場合は、次のような分散システムによって提供される共有パラメータに入れる必要があります.
次にboltのprepare()メソッドでこのパラメータを取得します.
他の分散システムも似ていますが、main関数でパラメータが定義されていると思ってはいけません.どこでも使用できます.このJVM内でしか使用できません.
@(ブログ記事)[java|ビッグデータ]
分散システムでは、複数のマシン、複数のプロセスが同時にプログラムを実行しているため、それらの間で異なるJVMで実行されているため、それらの間の変数は共有できません.
stormを例にとると、プライマリ・プログラムに変数が設定されている場合、たとえば
topoName = args[0];
boltでこの変数を取得することは不可能です.この変数は現在のJVMにしか保存されていないからです.したがって、boltでもこの変数を使用する場合は、次のような分散システムによって提供される共有パラメータに入れる必要があります.
config.put(Config.TOPOLOGY_NAME, topologyName);
次にboltのprepare()メソッドでこのパラメータを取得します.
@Override
public void prepare(Map conf, TridentOperationContext context) {
String topoName = (String) conf.get(Config.TOPOLOGY_NAME);
}
他の分散システムも似ていますが、main関数でパラメータが定義されていると思ってはいけません.どこでも使用できます.このJVM内でしか使用できません.