1

「フィールドのグループ化」と「ローカルまたはシャッフルのグループ化」をトポロジに適用して、各スパウトがデータをローカルボルトにのみ送信するだけでなく、ドキュメント内のフィールドを使用してどのローカルボルトに送信するかを決定したいと考えています。

したがって、それぞれ 1 つの Kafka-Spout と 2 つの Elastic-Search-Bolt を持つ 2 つのワーカー プロセスがある場合、ローカルまたはシャッフル グループ化により、次のようになります。

Each KS ---> Two local ES-Bolts

フィールドのグループ化により、次のことがわかります。

Each KS ---> Possibly all 4 ES-bolts, depending on the value of the field

しかし、私は次のことをしたいです:

Each KS ---> Two local ES-bolts only, but distribution among these
             local bolts should depend on the value of the field

どこ:

KS = カフカスパウト

ES = エラスティックサーチ

ES-bolt で 1 つのシャードのすべてのドキュメントをグループ化できるように、これを行いたいと考えています。このようにして、ES-bolt によって送信されたバッチは、ES サーバーによってさらに分割されることはありません。これは、これらのドキュメントの宛先シャードがすべて同じになるためです (フィールド レベルのグループ化のためにドキュメントにフィールドdestination_shardを追加する予定であり、destination_shard が計算されます)。 Murmurm3.hash(ID)%numShards として)。

そして、プロセス間通信は必要ないため、「ローカルまたはシャッフルのグループ化」が必要です

助けてくれてありがとう !

4

1 に答える 1