Я запускаю работу Spark в YARN и хотел бы получить идентификатор контейнера YARN (как часть требования о создании уникальных идентификаторов по множеству заданий Spark). Я могу увидеть метод Container.getId() для получения ContainerId, но не знаю, как получить ссылку на текущий запущенный контейнер из YARN. Возможно ли это? Как контейнер YARN получает свою собственную информацию?Как получить контейнер YARN ContainerId из контейнера?
2
A
ответ
2
Единственный способ, которым я мог получить что-то, это использовать каталог регистрации. Следующее работает в искровой оболочке.
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)
1
здесь ниже описания, как искра магазин Контейнер ID
Спарка скрыть идентификатор контейнера и выставить Исполнитель идентификатор для каждого приложения/задания так что если вы планируете поддерживать уникальный идентификатор каждой свечу работы, мой предложение использовать идентификатор приложения, которое искра дает вам, то вы можете добавить некоторую строку, чтобы сделать уникальный для вас
ниже искровой кода от «YarnAllocator.scala»
частная [пряжи] вал executorIdToConta iner = new HashMap [String, Container]
Смежные вопросы
- 1. Получить containerID, докер
- 2. Как получить контейнер Ip из другого контейнера?
- 3. Как получить один контейнер из другого контейнера?
- 4. Как развернуть контейнер контейнера?
- 5. Storm-YARN: контейнер приложения не запускается
- 6. Как создать новый контейнер из контейнера?
- 7. Код распределения контейнера в YARN (Hadoop)
- 8. Docker pass containerID к приложению, запущенному внутри самого контейнера
- 9. Контейнер Windows - Как зафиксировать контейнер
- 10. YARN Ошибка JobHistory: Ошибка перенаправления для контейнера
- 11. Docker ContainerID Unavailable
- 12. Как контейнеры назначаются в YARN?
- 13. Докер - Run Контейнер из Внутри контейнера
- 14. Загрузка контейнера в контейнер с видом контейнера
- 15. Копирование диапазона из контейнера в другой контейнер
- 16. Сравните контейнер контейнера и контейнер класса
- 17. Получить данные из реактивного контейнера
- 18. Как получить тип контейнера stl из объекта?
- 19. getChildFragmentManager() и containerId
- 20. Параметр YARN для сброса кучи до уничтожения контейнера
- 21. Отправка искры - подача внутрь контейнера докера в кластер YARN
- 22. Как получить объект Twig из контейнера?
- 23. Как сделать контейнер HTML5 для динамического контейнера родительского/гибкого контейнера
- 24. Как получить размер контейнера?
- 25. Как удалить файл/папку из контейнера Docker без запуска этого контейнера
- 26. Замок WCF Контейнер Конфигурация контейнера
- 27. Контейнер пряжи заканчивается из памяти
- 28. Контейнер контейнера для инъекций Symfony2
- 29. Как передать значение из контейнера A в контейнер B?
- 30. Как сбой контейнера обрабатывается для задания YARN MapReduce?
Некоторые из них - это то, что я хотел. Я использовал 'sc.parallelize ((от 1 до 10)). Map {_ => System.getProperty (" spark.yarn.app.container.log.dir ")} .distinct.collect(). Foreach (println)' и дает такие элементы, как (1 строка вставки) '/ var/log/hadoop-yarn/container/application_1504924099862_7571/container_e16_1504924099862_7571_01_000005' – codeaperature
+1 для ответа. В Java я пробовал следовать за искру 1.6, CDH 5.9, и он показывает мне ** CONTAINER_ID ** Карта envVarMap = System.getenv(); Set > envVarSet = envVarMap.entrySet(); for (Entry entry: envVarSet) { \t \t logger.info ("KEY = {} VALUE = {}", entry.getKey(), entry.getValue()); \t \t} –