Как samza генерирует container.id, когда приложение развернуто в пряже?

Может кто-нибудь сообщить мне, как samza генерирует samza.container.id/ SAMZA_CONTAINER_ID, когда приложение развернуто в пряже? Я просмотрел кодовую базу samza, но не смог найти логику для генерации samza.container.id


person tuk    schedule 22.04.2021    source источник


Ответы (1)


В среде YARN Samza использует сгенерированные YARN идентификаторы контейнеров в качестве переменных среды для установки samza.container.id каждого процесса контейнера. т. е. когда контейнеры запрашиваются процессом Samza AM в YARN, YARN RM ответит набором выделенных объектов-контейнеров класса org.apache.hadoop.yarn.api.records.Container. Это класс ресурсов для уникальной идентификации контейнера в YARN, а Container#getId().toString() — это строка идентификатора контейнера, которую мы установили в samza.container.id.

Код для получения идентификатора контейнера из ответа YARN RM находится в YarnClusterResourceManager#onContainersAllocated()

person Yi Pan    schedule 23.04.2021
comment
Container#getId().toString() возвращает строку, подобную container_e02_1619095810959_0006_10_000004, но samza.container.id является устойчивым последовательным целым числом, таким как 0, 1. Как идентификатор контейнера пряжи преобразуется в целое число? - person tuk; 24.04.2021