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

Spark SQL :使用 Kafka 订阅模式选项进行结构流式处理

严昀
2023-03-14

我正在尝试使用Kafka的Spark SQL结构流。我正在为kafka选项寻找这个强制选项subscribePattern[Java正则字符串]。显然,只有3个值是可能的:“赋值”、“订阅”或“订阅模式”

当我搜索这个选项时,最有用的信息如下:https://jaceklaskowski . git books . io/mastering-Apache-spark/content/spark-streaming/spark-streaming-Kafka-consumer strategy . html

谁能用外行的话来告诉我这三个选项中最明显的区别是什么?火花会反映出什么不同的行为SQL

共有1个答案

宋弘壮
2023-03-14

我不熟悉Spark,但是对于Kafka消费者来说,有三种选择:

    < li >分配:手动分配主题分区(即,您可以进行任何分区分配)。这将禁用使用者组管理,因此,如果您有多个使用者,并且想要平衡负载,您需要自己注意不要分配分区两次。 < li >订阅:指定您要阅读的一组主题。使用者组管理将执行分区的实际分配(即,如果一个组中有多个使用者,分区将分布在该组中的所有使用者上) < li >模式:与(2)类似,但是您指定一个正则表达式,并订阅与该正则表达式匹配的所有主题
 类似资料:
  • 我有一个字符串,我正试图根据几个regex模式验证它,我希望由于模式匹配在3.10中可用,我可以使用它来代替创建if-else块。 考虑一个字符串'validateString',其可能的值1021102,1.25.32string021。 我尝试的代码如下所示。 对于正则表达式1、2和3,我尝试了字符串正则表达式模式,还重新设置了。编译对象,但它似乎不起作用。 我一直试图在互联网上找到这方面的例

  • 我需要在发布/订阅模式下调用Kafka消费者1000次。据我所知,为了让kafka在发布/订阅模式下工作,我需要给每个消费者一个新的groupId(props . put(" group . id ",String.valueOf(Instant.now())。toEpochMilli()));).但是当我这样做的时候,如果两个消费线程同时访问消费线程,就会出现问题。这个问题应该怎么解决?

  • Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2、client5 和 client1 之间的关系: 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个

  • 我是Kafka的新手,所以很难理解pubsub模式。假设我有一个包含两个分区的主题(让我们称之为分区1、分区2) 我有3个消费者,其中 消费者1,消费者2—— 消费者3-- 假设所有3个消费者都从包含5条消息的分区1中读取 我的疑问是, 1.分区1中的所有5条消息是否都到达了每个消费者,即消费者1和消费者3?或者他们一个接一个地分享信息,因为Kafka保持的偏移可能不知道消费者属于同一个消费者群体

  • 我正在研究为Spark结构化流在kafka中存储kafka偏移量,就像它为DStreams工作一样,除了结构化流,我也在研究同样的情况。是否支持结构化流?如果是,我如何实现? 我知道使用进行hdfs检查点,但我对内置的偏移量管理感兴趣。 我期待Kafka存储偏移量只在内部没有火花hdfs检查点。

  • 我使用结构化流媒体(Spark 2.0.2)来消费Kafka消息。使用scalapb,protobuf中的消息。我得到以下错误。请帮助。。 线程“main”scala中的异常。ScalaRefltionException:不是一个术语org.apache.spark.sql.catalyst.符号$SymbolApi$9.apply术语(Seflection.scala:592)org.apach