问题描述
有人可以让我知道当应用程序部署在纱线中时 samza 是如何生成 samza.container.id / SAMZA_CONTAINER_ID 的吗?我在 samza 代码库中环顾四周,但无法找到生成 get_time
解决方法
在 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()