問題タブ [bolt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
126 参照

hive - Storm トポロジの高速化

csv ファイルを HDFS から Hive に移動するアプリケーションがあります。そのプロセスには Storm Topology を使用しています。

8台のマシンが使用されています。それぞれに 22 個のコアと 512 GB の RAM があります。ただし、コードの実行は非常に遅くなります。600 万のデータ転送が完了するまでに 10 分かかります。

60 個のファイルのうち 10 MB が 1 秒間に HDFS に転送されます。コードを最適化しようとしていますが、非常に間違ったことをしていることは明らかです。

Hive テーブルには、64 個のバケットがあります。

このトポロジーには、1 つのスパウトと 2 つのボルトがあります。基本的に、Spout は CSV ファイルを取得し、データの解析を担当する最初の Bolt に行を送信し、次に、Bolt が HDFS プロセスを担当する 2 番目の Bolt に送信します。

HDFS スパウト;

マッパー;

ハイブ オプション;

構成;

トポロジビルダー;

次のパラメータについては不明です。

HDFS スパウトで。.setMaxOutstanding(50_000);

ハイブスパウトオプションで。.withTxnsPerBatch(2) .withBatchSize(50_000) .withTickTupleInterval(1);

設定で; .setNumWorkers(6); .setNumAckers(6);

スパウトとボルトの平行度; それぞれに8つ与えました。

これらのパラメーターの値は何にする必要がありますか? 前もって感謝します。

編集; これは、100 個の csv ファイルの 10 mb のテスト結果です。

hdfsSpout Executor: 8 完全遅延: 1834.209 ミリ秒

recordParserBolt Executor: 8 完全遅延: 0.019 ミリ秒

hiveBolt Executor: 8 完全遅延: 1092.624 ミリ秒

0 投票する
1 に答える
110 参照

java - apache storm - 単一ノードでjarを正しく実行しますが、マルチノードでは実行しません

私は Apache ストームを初めて使用します。1 つのスパウトと 2 つのボルトを含むコードを書きました。この 3 つの部分を 1 つのワーカーで実行すると、コードは正しく出力を生成しますが、1 つのワーカーが実行する 3 つのワーカーでコードを実行すると、スパウト、別のランボルト 1、最後のランボルト 2 の場合、出力は生成されません。特定の状況: 1 つのワーカーにボルト 1 と 2 を配置すると、出力が生成されました!

エミットは正常に機能し、エミット変数に問題はないと言わざるを得ません。

詳細: ボルト 1 でハッシュマップ構造にツリーを作成しました。ボルト 2 でこのツリーをマイニングしたいと思います。ボルト 1 でツリーに挿入されるオブジェクトの ID は "MyTreeNode@e70014d5" のようになり、このタプルを受け取ったとき (ハッシュマップ) ボルト 2 では、ID が「MyTreeNode@z5542r12」のようなものに変更されました。

主な問題は何ですか?

問題はオブジェクト ID の変更によるものですか? はいの場合、どうすれば解決できるか教えてください。