【发布时间】:2017-08-18 20:57:53
【问题描述】:
我做了一个 poc,我使用 spark 流从 Kafka 读取数据。但是我们的组织使用 Apache Flink 或 Kafka 消费者从 Apache kafka 读取数据作为标准流程。所以我需要用 Kafka 消费者或 Apache Flink 替换 Kafka 流。在我的应用程序用例中,我需要从 kafka 读取数据,过滤 json 数据并将字段放入 cassandra,因此建议使用 Kafka 消费者而不是 flink/其他流,因为我真的不需要使用 Kafka 进行任何处理json数据。所以我需要你的帮助来理解以下问题:
使用 Kafka 消费者,我能否实现与 Spark Streaming 或 flink 相同的连续数据读取?
考虑到我需要从 kafka 读取数据、使用 avro scehma 反序列化、过滤字段并放入 cassandra,kafka 消费者对我来说是否足够?
可以使用 kafka 消费者 API 创建 Kafka 消费者应用程序,对吧?
如果我只使用 Kafka 消费者而不是 Apache flink,我的情况有什么缺点吗?
【问题讨论】:
-
您还应该考虑使用 Kafka 的 Streams API。这比 Kafka 的消费者 API 强大得多。 kafka.apache.org/0102/documentation/streams 和 docs.confluent.io/current/streams
-
您打算如何部署您的应用程序?是否已经有任何系统可以在您的组织中部署“东西”?该系统的长期计划是什么?您是否打算继续使用它来摄取 Cassandra,或者是否有计划对流中的数据执行任何计算?
-
@rmetzger:计划将其部署在可以运行消费者 API 作业的独立集群上。我们没有任何现有的系统来部署东西,它将是新的环境。想法只是从kafka读取数据,使用avro转换为json,过滤所需字段并存储到cassandra中,无需计算。您的建议会有所帮助。
-
Mh :) 很难提出任何建议。这取决于您在团队中拥有的知识。如果他们中的大多数人之前都使用过 Hadoop YARN,我会使用 YARN 部署 Flink。如果您使用自己的系统在集群中部署和监控 JVM,则可以考虑使用 Kafka Streams。我实际上建议尝试这两个系统,看看哪种系统更适合您的需求。
标签: apache-kafka spark-streaming avro kafka-consumer-api apache-flink