Spark を使い始めたばかりで理解しようとしているので、この質問が意味をなさない場合はご容赦ください。
私が読んだことから、Spark はストリーミング データのリアルタイム分析を行うための良いユース ケースであり、hdfs/hive/hbase などのダウンストリーム シンクにプッシュできます。
それについて2つ質問があります。実行中の Spark ストリーミング ジョブが 1 つだけなのか、それとも常に複数なのかは明確ではありません。Kafka からのトピックごと、または Kafka にストリーミングしているソースごとに実行する必要があるさまざまな分析があり、それらの結果を下流にプッシュするとします。
Spark では、複数のストリーミング ジョブを並行して実行できるので、集計分析をストリームごと、この場合は Kafka トピックごとに分けて保持できますか。もしそうなら、それはどのように行われますか、あなたが私に指摘できるドキュメントはありますか?
明確にするために、私のユースケースはさまざまなソースからストリーミングすることであり、各ソースには、実行する必要がある異なる分析と異なるデータ構造が潜在的に含まれる可能性があります。複数の Kafka トピックとパーティションを使用できるようにしたいと考えています。各 Kafka パーティションは Spark パーティションにマップされ、並列化できることを理解しています。
ただし、複数のSparkストリーミングジョブを並行して実行して、複数のKafkaトピックから読み取り、それらのトピック/ストリームに関する個別の分析を集計する方法はわかりません.
Spark でない場合、これは Flink で実行できるものですか?
2 つ目は、Spark をどのように使い始めるかです。Confluent-Kafka、Databricks-Spark、Hadoop-HW/CDH/MAPR など、コンポーネントごとに選択できる会社やディストリビューションがあるようです。これらすべてが本当に必要なのか、それともベンダーの数を制限しながらビッグ データ パイプラインを使用するための最小限で最も簡単な方法は何ですか? POC を開始するだけでも、非常に大きな作業のように思えます。