【问题标题】:Kafka Consumer Vs Apache FlinkKafka 消费者与 Apache Flink
【发布时间】: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数据。所以我需要你的帮助来理解以下问题:

  1. 使用 Kafka 消费者,我能否实现与 Spark Streaming 或 flink 相同的连续数据读取?

  2. 考虑到我需要从 kafka 读取数据、使用 avro scehma 反序列化、过滤字段并放入 cassandra,kafka 消费者对我来说是否足够?

  3. 可以使用 kafka 消费者 API 创建 Kafka 消费者应用程序,对吧?

  4. 如果我只使用 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


【解决方案1】:

首先,让我们看一下Flinks Kafka Connector和Spark Streaming with Kafka,它们都使用内部的Kafka Consumer API(简单API或高级API)来消费来自Apache Kafka的消息以用于他们的工作。

所以,关于你的问题:

  1. 是的

  2. 是的。不过,如果你使用 Spark,可以考虑使用Spark Cassandra connector,这有助于将数据高效地保存到 Cassandara 中

  3. 对

  4. 如上所述,Flink 也使用 Kafka 消费者来完成其工作。此外,它是一个分布式流和批处理数据处理,它有助于在从 Kafka 消费后有效地处理数据。在您的情况下,要将数据保存到 Cassandra,您可以考虑使用 Flink Cassandra Connector 而不是自己编码。

【讨论】:

  • 感谢您的意见!根据您的回复,如果我使用 Kafka 消费者 API 从 Kafka 读取数据,我们似乎没有任何内置 API 可以在 Cassandra 中存储数据?你能确认一下吗?
  • 您可以使用来自 Confluent.io 的 Kafka-Cassandra 连接器:confluent.io/blog/…,或来自社区:github.com/tuplejump/kafka-connect-cassandra。
猜你喜欢
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-31
  • 2018-12-03
  • 2019-11-23
  • 1970-01-01
相关资源
最近更新 更多