0

Очень простое приложение, работающее на кластере Spark с двумя рабочими, с использованием Kinesis с 2-мя осколками.AWS Kinesis leaseOwner confusion

И я проверяю Kinesis Streams Application State on DynamoDB (показать на этом скриншоте) в регионе Северная Вирджиния.

Я начинаю и останавливаю рабочих время от времени, и я только заметил, когда leaseOwner для 2 осколков является одним и тем же работником, приложение работает отлично.

Но когда я прекращаю текущую арендную плату (10.0.7.63), тогда будет переключатель владельца, а новый владелец будет другим работником (10.0.7.62), тогда мое приложение вытащит данные и данные не будут возвращены из Kinesis (но связь с Kinesis все еще включена).

Я предполагаю, что когда владелец переключается на другого работника, контрольные точки нового владельца не соответствуют тому, что осталось внутри Kinesis, и потянув данные, он ничего не получит.

Не могли бы вы объяснить, что здесь происходит? Думаю, правильно?

Большое спасибо.

enter image description here

+3

Прежде всего, просто дружественное напоминание; определить «employeeID» в конфигурации вашего приложения с именем хоста; это поможет вам с более удобными именами. Во-вторых, вы уверены, что shard-000 получает данные? Возможно, вы установили статический ключ раздела на стороне потребителя, и это приводит к тому, что данные стекаются только на shard-001? – az3

+0

@ az3 о, вы правы! Я использую статический ключ раздела! Я тоже забыл об этом ... спасибо, что так помогли мне :) – keypoint

+1

@ az3 - предлагаю положить это как ответ :) – Krease

ответ

0

Прежде всего, просто дружеское напоминание; определить «employeeID» в конфигурации вашего приложения с именем хоста; это поможет вам с более удобными именами.

Во-вторых, вы уверены, что обломки-000 получают данные? Возможно, вы установили статический ключ раздела на стороне потребителя, и это приводит к тому, что данные стекаются только на shard-001?

Смежные вопросы