【问题标题】:AWS Kinesis leaseOwner confusionAWS Kinesis 租赁业主困惑
【发布时间】:2016-05-03 11:10:28
【问题描述】:

一个非常简单的应用程序,在具有 2 个工作器的 Spark 集群上运行,使用带有 2 个分片的 Kinesis。

我检查了北弗吉尼亚地区的Kinesis Streams Application State on DynamoDB(显示在此屏幕截图中)。

我不时启动和停止worker,我只是注意到,当2个分片的leaseOwner是同一个worker时,应用程序工作正常。

但是当我停止当前的 LeaseOwner (10.0.7.63) 时,会有一个所有者切换,新的所有者将是另一个工人 (10.0.7.62),然后我的应用程序提取数据并且没有从 Kinesis 返回数据(但是,与 Kinesis 的连接仍在)。

我的猜测是,当所有者切换到另一个工作人员时,新所有者上的检查点与 Kinesis 中剩余的内容不匹配,拉取数据将一无所获。

谁能解释一下这里发生了什么?我猜对了吗?

非常感谢。

【问题讨论】:

  • 首先友情提示一下;使用主机名在应用程序的配置中定义“workerID”;它将帮助您使用更用户友好的名称。其次,你确定 shard-000 接收到数据吗?也许您在消费者端设置了一个静态分区键,这导致数据仅堆叠在 shard-001 上?
  • @az3 哦,你是对的!我正在使用静态分区键!我自己忘记了...非常感谢您帮助我:)
  • @az3 - 建议将其作为答案:)
  • 我会重写它作为答案,谢谢!

标签: amazon-web-services apache-spark amazon-dynamodb spark-streaming amazon-kinesis


【解决方案1】:

首先,只是友情提醒;使用主机名在应用程序的配置中定义“workerID”;它将帮助您使用更用户友好的名称。

第二,你确定shard-000接收到数据了吗?也许您在消费者端设置了一个静态分区键,这导致数据仅堆叠在 shard-001 上?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 2016-06-12
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 2018-07-25
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多