在过去几年中,我们开发了相当多的星火流(Direct )应用程序,这些应用程序正在我们的Cloudera平台上读取或写入Kafka、IBM、Hive、HBase、HDFS和其他应用程序。现在取消了Spark流的Direct (我们目前有2.3.2版本),并且我们最近向我们的项目添加了汇合平台(附带了Kafka 2.2.0),我们计划迁移这些应用程序。
什么是我们的火花流应用程序的自然替代?我们应该迁移到火花结构化流,或者更确切地说是卡夫卡流吗?
我个人对这两个框架没有任何经验,但在我看来,结构化流似乎是自然的选择。我们的代码库主要是用Scala编写的,它也可以用于结构化API。Kafka在Scala中有一些局限性。虽然我们可能会通过保留RDDs的低级别API并迁移到更高级别的DataFrames而失去一些灵活性,但我们可以在Spark知识的基础上建立起来。
另一方面,卡夫卡流可能是处理卡夫卡主题之间数据的最佳选择,这是我们的主要用例。看看所有的卡夫卡连接器,与汇合,其他用途的情况也可以服务。
发布于 2020-02-20 05:10:15
您目前有一些Spark调度程序,因此可以使用结构化流,这是与旧的流API兼容的二进制流。
如果您使用的是Mesos或k8s,那么将Kafka流应用程序放在Docker中并运行这些应用程序比Spark更容易扩展、监视和配置,因为它在这些系统中充当任何其他Docker容器,所以您可以围绕所有这些系统构建一个模式
卡夫卡流..。在处理Kafka主题之间的数据时,可能是最好的选择。
是真的。
Kafka流对Scala有一些限制。
我想你应该继续读那一节
Scala库的Kafka是对现有的卡夫卡流DSL的Java的包装,解决了引起的问题。
当然,您可以始终使用Kotlin更好地与Java进行互操作。
https://stackoverflow.com/questions/60311073
复制相似问题