当前位置: 首页 > 知识库问答 >
问题:

Spark Streaming和Kafka:一个集群还是几个独立的盒子?

穆俊杰
2023-03-14

我要做一个关于使用火花流Kafka集成的决定。

  1. 一个Kafka主题和一个星火集群。
  2. 几个Kafka主题和几个独立的Spark盒(每个主题有一台带有独立Spark集群的机器)
  3. 几个Kafka主题和一个星火集群。

我很想选择第二种方案,但我找不到人谈论这样的解决方案。

共有1个答案

班思源
2023-03-14

在这种情况下要考虑的一个重要因素是主题的划分。

您的Kafka-Spark集成的并行度级别将由主题的分区数决定。直接Kafka模型通过为相应的Spark作业建立主题的分区数和RDD分区数之间的1:1映射,简化了消耗模型。

因此,推荐的设置是:一个包含n个分区的Kafka主题(其中n个分区针对您的使用进行了调优)和一个Spark集群,该集群具有足够的资源来并行处理来自这些分区的数据。

选项2感觉像是尝试重新实现Spark提供给您的开箱即用:Spark提供给您弹性分布式计算。选项2试图在多台机器上并行化有效负载,并通过拥有独立的执行程序来处理故障。您可以通过单个星火集群实现这一目标,并通过改进资源使用和单一部署来实现这一目标。

 类似资料:
  • 工人出现在图片上。为了运行我的代码,我使用了以下命令:

  • 我有 2 个Kafka集群。群集 A 和群集 B。这些集群是完全独立的。我有一个Spring启动应用程序,它侦听集群 A 上的主题,转换事件,然后将其生成到集群 B 上。我只需要一次,因为这些是金融事件。我注意到,对于我当前的应用程序,我有时会遇到重复的情况,也会错过一些事件。我试图尽我所能只实现一次。其中一篇帖子说,与Spring启动相比,flink将是一个更好的选择。我应该搬到闪光灯吗?请参阅

  • 应用程序不是那么占用内存,有两个连接和写数据集到目录。同样的代码在spark-shell上运行没有任何失败。 寻找群集调优或任何配置设置,这将减少执行器被杀死。

  • 正在尝试让Keyclope与mysql innodb群集配合使用。我已经单独配置了Keyclope。xml符合文档要求。 这是数据源 这是司机 我还添加了module.xml打包mysql jdbc驱动程序(我使用最新版本mysql-connector-java-8.0.21.jar) 运行keydrope时出现的错误是 这方面的任何帮助都会非常有用。

  • Kafka主题之一和HDFS,它们都需要单独的Kerberos身份验证(因为它们属于完全不同的集群)。 我的问题是: 可能吗(如果可能,怎么可能?)在服务器上运行的Flink集群上使用来自Flink作业的两个Kerberos keytabs(一个用于Kafka,另一个用于HDFS)?(因此Flink作业可以使用Kafka主题,同时写入HDFS) 如果不可能,当Kafka和HDFS都受Kerbero

  • 以前已经回答过一个类似的问题,但是这个解决方案对我的用例不起作用。 我们运行2个Kafka集群,每个集群在2个单独的DC中。我们的总入站流量在这两个DC之间分配。 我将在每个DC中运行单独的Kafka流应用程序来转换数据,并希望在单个DC中写入Kafka主题。我怎样才能做到呢? 最终我们将在Druid中索引Kafka主题数据。不可能运行单独的Druid集群,因为我们正在尝试聚合数据。 我读过一篇K