0
私はApacheの嵐に取り組んでおり、HDFSを使用しています。もし私が並列1のヒントを使うと、1つのファイルが作成され、ファイルにデータを書き込んで正常に動作します。しかし、私が3にボルトのための並列性のヒントを増加させると、それは3つのファイルを作成し、1つのファイルだけにデータを書き込んでいます。HDFSでの並列処理のヒント
私のアプリケーションは、1つの注ぎ口と2本のボルト(XboltとYblot)を有する 並列ヒント スパウト1、Xbolt 1、Ybolt 3
アプリケーション スパウト流れは以下の通りである - > Xbolt - > Yboltを - >ファイル(複数可)
TopologyBuilder builder = new TopologyBuilder();
BoltDeclarer boltDeclarer;
int parallelismHint = 0;
parallelismHint = SpoutLogic.determineParallelismHint(config);
builder.setSpout("TOPIC_ID", new Spout(), parallelismHint);
parallelismHint = XBoltLogic.determineParallelismHint(config);
boltDeclarer = builder.setBolt("XBOLT_ID", new XBolt(), parallelismHint);
boltDeclarer.shuffleGrouping("TOPIC_ID","XBoltMessage");
parallelismHint = HDFSBoltLogic.determineParallelismHint(config);
boltDeclarer = builder.setBolt("HDFSBOLT_ID",new HDFSBolt(), parallelismHint);
boltDeclarer.fieldsGrouping("XBOLT_ID","XBoltMessage",new Fields("Table")); StormSubmitter.submitTopology("MyTopologyName", config, builder.createTopology());
あなたの接続パターンは何ですか?すべてのデータが単一のボルトのみに送られることは可能ですか? –
@gudivinayあなたのドライバーコードは – Alex
@ MatthiasJ.Saxにあります。はい、すべてのデータは単一のボットのみにルーティングされます.i.e HDFSボルトと私はファイルにデータを書き込むために抽象HDFSボルトを使用しています。 –