【Spark实战系列】sparkstreaming 消费 kafka0.10 中的 LocationStrategies 和 ConsumerStrategies 代表的是什么含义?

LocationStrategies

新的Kafka使用者API将预先获取消息到缓冲区。因此,出于性能原因,Spark集成将缓存的消费者保留在执行程序上(而不是为每个批处理重新创建它们),并且更喜欢在具有适当使用者的主机位置上安排分区,这一点很重要。
在大多数情况下,您应该使用LocationStrategies.PreferConsistent,如上所示。这将在可用执行程序之间均匀分配分区。如果您的执行程序与Kafka代理在同一主机上,请使用PreferBrokers,它更愿意为该分区安排Kafka领导者的分区。最后,如果分区之间的负载有明显偏差,请使用PreferFixed。这允许您指定分区到主机的显式映射(任何未指定的分区将使用一致的位置)。
消费者的缓存的默认最大大小为64.如果您希望处理超过(64 *个执行程序数)Kafka分区,则可以通过spark.streaming.kafka.consumer.cache.maxCapacity更改此设置。
如果要禁用Kafka使用者的缓存,可以将spark.streaming.kafka.consumer.cache.enabled设置为false。可能需要禁用缓存来解决SPARK-19185中描述的问题。一旦SPARK-19185解决,可以在Spark的更高版本中删除此属性。
缓存由topicpartition和group.id键入,因此每次调用createDirectStream时都要使用单独的group.id。 

ConsumerStrategies

新的Kafka消费者API有许多不同的方法来指定主题,其中一些需要相当大的后对象实例化设置。 ConsumerStrategies提供了一种抽象,即使从检查点重新启动后,Spark也可以获得正确配置的消费者。
ConsumerStrategies.Subscribe,如上所示,允许您订阅固定的主题集合。 SubscribePattern允许您使用正则表达式来指定感兴趣的主题。请注意,与0.8集成不同,使用Subscribe或SubscribePattern应响应在正在运行的流期间添加分区。最后,Assign允许您指定固定的分区集合。所有这三个策略都重载了构造函数,允许您指定特定分区的起始偏移量。
如果您具有上述选项无法满足的特定使用者设置需求,则ConsumerStrategy是您可以扩展的公共类。

 

如果有写的不对的地方,欢迎大家指正,如果有什么疑问,可以加QQ群:340297350 谢谢

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JasonLee实时计算

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值