首页 > 解决方案 > 应用部署在yarn中时samza如何生成container.id?

问题描述

当应用程序部署在纱线中时,有人可以告诉我 samza 如何生成samza.container.id / SAMZA_CONTAINER_ID吗?我在 samza 代码库中环顾四周,但无法找到生成的逻辑samza.container.id

标签: apache-samza

解决方案


在 YARN 环境中,Samza 使用 YARN 生成的 containerIds 作为环境变量来设置每个容器进程的 samza.container.id。即,当 YARN 中的 Samza AM 进程请求容器时,YARN RM 将回复一组分配的容器对象,这些对象属于 org.apache.hadoop.yarn.api.records.Container 类。这是在 YARN 中唯一标识容器的资源类,Container#getId().toString() 是我们设置为 samza.container.id 的容器 ID 字符串。

从 YARN RM 的响应中获取容器 ID 的代码位于YarnClusterResourceManager#onContainersAllocated()


推荐阅读