gpt4 book ai didi

hadoop - 如何从容器内部获取 YARN ContainerId?

转载 作者:可可西里 更新时间:2023-11-01 14:45:20 28 4
gpt4 key购买 nike

我正在 YARN 上运行 Spark 作业,并希望获取 YARN 容器 ID(作为跨一组 Spark 作业生成唯一 ID 的要求的一部分)。我可以看到 Container.getId()方法获取 ContainerId 但不知道如何从 YARN 获取对当前运行容器的引用。这可能吗? YARN 容器如何获取自己的信息?

最佳答案

我能得到一些东西的唯一方法是使用日志目录。以下在 spark shell 中工作。

import org.apache.hadoop.yarn.api.records.ContainerId

def f(): String = {
val localLogDir: String = System.getProperty("spark.yarn.app.container.log.dir")
val containerIdString: String = localLogDir.split("/").last
val containerIdLong: Long = ContainerId.fromString(containerIdString).getContainerId
containerIdLong.toHexString
}

val rdd1 = sc.parallelize((1 to 10)).map{ _ => f() }
rdd1.distinct.collect().foreach(println)

关于hadoop - 如何从容器内部获取 YARN ContainerId?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41724300/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com