問題タブ [apache-storm-topology]

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 投票する
0 に答える
1946 参照

netty - Apache Storm のワーカー ノード間の Netty クライアント接続エラー

1 つのノードに Nimbus をセットアップし、他の 2 つのノードに 2 つのスーパーバイザーをセットアップして、Apache Storm を実行しています。(workers=2 で) トポロジを起動した後、正しく実行されません。スーパーバイザ ノードの 1 つのワーカー ログに、次のエラーが表示されます。

2018-07-04 17:36:02.650 o.a.s.m.n.Client client-boss-1 [ERROR] connection attempt 1 to Netty-Client-hostname/X.X.X.X:6700 failed: org.apache.storm.shade.org.jboss.netty.channel.ConnectTimeoutException: connection timed out: hostname/X.X.X.X:6700

他のワーカー ノードで、次のエラーが表示されます。 2018-07-04 17:34:11.344 o.a.s.m.n.Client client-boss-1 [ERROR] connection attempt 3 to Netty-Client-hostname1/X.X.X.X:6700 failed: java.net.ConnectException: Connection refused: hostname1/X.X.X.X:6700

ワーカー ログに他のエラーはありません。これらのワーカーの 1 つを別のワーカー (同じサブネット上) に置き換えると、トポロジは完全に動作します。このため、問題は 2 つのワーカー ノード間の接続に関連しているようです。ただし、/etc/hosts ファイルは正しく設定されており (これらのいずれかとペアになった場合に正しく動作するワーカーと同じ)、両方のワーカーが相互に到達できます (ping/ssh)。Nimbus とこれらのワーカー間の接続は問題ありません (worker=1 のトポロジは、これらの各ワーカーで正しく実行されます)。

ここで何が問題なのか、今はわかりません。どんな助けでも大歓迎です。

編集:

これを理解するために多くの時間を費やした後、ポート 6700 での接続がワーカー ノードで許可されていないことがわかりました。ポートで着信 tcp 接続を許可するように iptables を編集しました。ワーカー ログにはまだいくつかの接続エラーが表示されますが、少なくとも現在、トポロジは正常に動作しています。

sudo iptables -A INPUT -p tcp --dport 6700 -j ACCEPT

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

maven - Storm が Ignite log4j で依存関係の競合を引き起こす

Storm クラスタで Storm トポロジを実行しようとしています。提供されているトポロジ jar が作成されています。トポロジ ボルト内で MyIgniteCache モジュールからデータを読み取りたいのですが、次のようなエラーが発生します。依存関係 (:/usr/hdp/2.6.0.3-8/storm/lib/log4j-slf4j-impl-2.8.jar:/usr/hdp/2.6.0.3-8/storm/lib/log4j-core- 2.8.jar:log4j) の storm-core が ignite-log4j で競合を引き起こします。

ava.lang.IncompatibleClassChangeError: java.lang.ClassLoader.defineClass1(Native Method) でクラスを実装しています ~[?:1.8.0_112] java.lang.ClassLoader.defineClass(ClassLoader.java:763) で ~[?:1.8.0_112 ] java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) で ~[?:1.8.0_112] java.net.URLClassLoader.defineClass(URLClassLoader.java:467) で ~[?:1.8.0_112] Java で。 net.URLClassLoader.access$100(URLClassLoader.java:73) ~[?:1.8.0_112] で java.net.URLClassLoader$1.run(URLClassLoader.java:368) ~[?:1.8.0_112] で java.net. URLClassLoader$1.run(URLClassLoader.java:362) ~[?:1.8.0_112] at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_112] at java.net.URLClassLoader.findClass(URLClassLoader. java:361) ~[?:1.8.0_112] java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_112] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[?:1.8.0_112] at java.lang.ClassLoader. loadClass(ClassLoader.java:357) ~[?:1.8.0_112] at java.lang.Class.forName0(Native Method) ~[?:1.8.0_112] at java.lang.Class.forName(Class.java:264) ) ~[?:1.8.0_112] at org.apache.ignite.internal.util.IgniteUtils.addLog4jNoOpLogger(IgniteUtils.java:8366) ~[stormjar.jar:?] at org.apache.ignite.internal.IgnitionEx.start (IgnitionEx.java:930) ~[stormjar.jar:?] org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:854) で ~[stormjar.jar:?] org.apache.ignite.internal で.IgnitionEx.start(IgnitionEx.java:724) ~[stormjar.jar:?] org.apache.ignite.internal.IgnitionEx.start(IgnitionEx.java:693) ~[stormjar.jar:?] org.apache.ignite.Ignition.start(Ignition.java:352) で ~[stormjar.jar:?]

そして、私のストーム トポロジ モジュールの依存関係ツリーは次のようになります。

そして、これが私の構成キャッシュの依存関係ツリーです

これらの依存関係にもかかわらず、IDE でトポロジと myconfigcache モジュールを実行しているときに、別の重大な警告が表示されます

では、Storm log4j の依存関係を除いて、トポロジの実行をどのように処理できますか?

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

java - Apache Storm Kafka スパウト ラグの問題

Storm 1.1.2 と Kafka 0.11 を使用して、Docker コンテナーで起動する Java Spring アプリケーションを構築しています。

トポロジのすべてが計画どおりに機能しますが、Kafka からの負荷が高いと、時間の経過とともに Kafka の遅延がますます大きくなります。

私の KafkaSpoutConfig:

次に、私のトポロジは次のとおりです

RouterBolt (BaseRichBolt を拡張) は、1 つの非常に単純な switch ステートメントを実行し、ローカルの KafkaProducer オブジェクトを使用して新しいメッセージを別のトピックに送信します。私が言ったように、すべてがコンパイルされ、トポロジは期待どおりに実行されますが、高負荷 (3000 メッセージ/秒) では、Kafka の遅延が積み重なり、トポロジのスループットが低下します。

ackを無効にしてみました

しかし、それは問題ではないと思います。

Storm UI で、RouterBolt の実行レイテンシが 1.2 ミリ秒で、高負荷時のプロセス レイテンシが 0.03 ミリ秒であることを確認しました。これにより、Spout がボトルネックであると思われます。また、25 個のパーティションがあるため、並列処理のヒントは 25 です。 「マイトピック」。ありがとう!