問題タブ [trident]
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.
apache-storm - ストーム対トライデント: トライデントを使用しない場合は?
私はStormを使用していますが、多くのユース ケースで問題ありません。最近、Storm の高レベルの抽象化であるTridentを調べました。1 回限りの処理をサポートし、ステートフルな処理を容易にします。
しかし今、私は疑問に思っています.なぜ、ストームの代わりに常にトライデントを使用できないのですか?
これまでに読んだこと:
- Trident はメッセージをバッチで処理するため、スループット時間が長くなる可能性があります。
- Trident はまだトポロジ内のループを処理できません。
ストームの代わりにトライデントを使用する場合、他に不利な点はありますか? 現時点では、上に挙げた欠点はわずかだと思います。
Trident で実装できないユースケースは?
余波:
私が質問をしたので、私の会社は最初にトライデントに行くことにしました。パフォーマンスに問題がある場合にのみ純粋な Storm を使用します。悲しいことに、これは積極的な決定ではなく、デフォルトの動作になっただけです (その時は私はいませんでした)。
彼らの仮定は、ほとんどのユースケースで状態または一度だけの処理が必要であるか、近い将来に必要になるというものでした。Storm から Trident へ、またはその逆に移行することは簡単な変換ではないため、彼らの理由は理解できますが、私の個人的な意見では、状態のないストリーム処理の概念はすべての人に理解されておらず、それが Trident を使用する主な理由でした。
apache-storm - 2 番目のスーパーバイザ ノードが追加されると、ストーム スパウトの放出が停止する
TridentTopology
ファイルから読み取り、単一のスパウトを使用して集計を発行するために使用しています。スーパーバイザ ノードが 1 つの場合、トポロジは正常に機能し、スパウトは正常に出力されます。ただし、2 番目のスーパーバイザ ノードが追加されると、スパウトは放出を停止します。Storm UI を使用して、2 つのスーパーバイザー ノードがあることを確認できました。両方のノードのスーパーバイザー ログまたはワーカー ログ ファイルにエラーはありません。
apache-storm - トライデント トポロジを使用して、あるデータベースからデータを取得して処理し、別のデータベースに保存する
スパウトを介して 1 つのデータベースからデータを取得し、そのデータを処理して、trident を使用して別のデータベースに保存したいと考えています。スパウト (トライデントでサポートされている IRichSpout を実装する別の Java クラス) をオブジェクトとして出力します。それをトライデント トポロジに渡して処理 (レコード数のカウント) し、データベースに保存する必要があります。
新しいストリームはスパウトを入力として受け取ります。つまり、構文は次のとおりです。
しかし、スパウトによって放出されたオブジェクトを、トライデントが処理してデータベースに保存するためのストリームへの入力として提供したいので、どのようにスパウト クラスをトライデント内に持ってきて、それを新しいストリームに渡すことができますか、スパウトとスパウトの両方を組み合わせる必要がありますか?トライデントと同じクラス??
誰か助けてくれませんか.....
global - Storm でタプルのグローバル平均を計算するには、Trident を使用する必要がありますか?
[int id,int value] で構成される受信タプルの平均を Storm で計算したいと考えています。ご覧のとおり、フィールドのグループ化を使用してデータを分割することはできません。この計算を分散するにはトポロジ アーキテクチャが必要です。私が考えている唯一の方法は、各ボルト インスタンス内でミニ バッチを実行してから集計することです。
ストーム内でミニバッチ処理を行うには、トライデントが適切なソリューションであることがわかりました。
属性に基づいてデータを分割できない場合に、嵐のような手段、グローバル カウント、std-devs を使用してグローバル分析を計算するためのベスト プラクティスは何ですか? トポロジの例はありますか?
apache-storm - スパウト出力コレクタから DRPC リクエストに値を渡すには?
Trident+DRPC を実装しようとしています。無期限に実行されないようにトポロジを設計しました。1 つはスパウトの実装用、もう 1 つは DRPC と Trident の実装用です。私のスパウト クラス (IRichSpout を拡張するスパウト) は、顧客の ID を発行します。すなわち
ここで、DRPC を使用して Trident を実装する別のクラスの出力コレクターから値を取得しました。
drpc トポロジ定義は次のとおりです。
DRPC リクエストは次のとおりです。
上記のコードでは、DRPC リクエストで、つまり
スパウトによって発行された ID と同じである必要があります。"id"
つまり、この ID を使用してアクティブなアカウントを持っている顧客を知りたいので、スパウトによって発行されたすべての ID に対して DRPC 要求を送信する必要があります。現在、DRPC はメイン クラスにあります。ID を手動で指定せずに、スパウトによって発行された値を DRPC リクエストに渡すにはどうすればよいですか?
誰か助けてください
新しい情報で編集
serialization - ストーム トポロジの実行時に InvalidClassException ローカル クラスに互換性がありません
単一のトポロジを実行しているストーム アプリケーションは、ローカル モードで実行すると問題なく動作しますが、分散環境で実行すると、ワーカー ログにこれらの例外が記録されます。これは同じ例外ですが、2 つの異なるクラスを参照しています。1 つ目は、storm.trident.topology.MasterBatchCoordinator を参照します。
2 番目は backtype.storm.topology.BasicBoltExecutor を参照します。
ログ全体に表示され続け、私のトポロジは明らかに機能していません。クラスのシリアル バージョンがクラス記述子のバージョンと異なることが判明した場合にこの例外がスローされることは知っていますが、その原因と修正方法はよくわかりません。
ここに私のpomの依存関係があります:
何か案は?ここで迷子になりました :\
apache-storm - Storm Trident の平均アグリゲーター
私はトライデントの初心者で、「Sum()」に似た「平均」アグリゲーターを作成しようとしていますが、「平均」用です。次は機能しません。
構文的に正確ではないかもしれませんが、それがアイデアです。できれば助けてください。値 [2,4,1] および [2,2,5] とフィールド 'a'、'b' および 'c' を持つ 2 つのタプルが与えられ、フィールド 'b' で平均を実行すると、'3' が返されます。init() と zero() がどのように機能するかは完全にはわかりません。
よろしくお願いいたします。
エリ
winapi - MSHTML.DLL を直接 (WebBrowser ではなく) ホスティングする資料を読んでいますか?
MSHTML.DLL/Tridentを直接 ( SHDOCVW.DLL/WebBrowserではなく)ホスティングするための優れた読み物を提案できる人はいますか? C++ の GUI 要素、場合によっては主要な要素に使用したいと考えています。HTML レンダリング、追加のホスト提供の DOM メソッドとプロパティ、イベントを備えた JavaScript が必要です。
私の印象では、WebBrowser は余分なレイヤーを追加するだけで、必要なものは何も提供しません。それ以上に、クロスページ ナビゲーション、履歴、UI、コンテキスト メニュー、レジストリの依存関係、一般的な Active Document ホスティングなどを無効にする必要があります。ダウンロードなど
多くの場合、MSHTML と呼んでいるにもかかわらず、私が見つけたすべての記事は WebBrowser コントロールについて語っています。Microsoft のドキュメントでは、何が MSHTML で、何が WebBrowser であるかを理解するのが難しくなっています。たとえば、「その他の MSHTML インターフェイス」には、MSHTML.DLL の一部ではない IWebBrowser2 などがリストされています。