Как повторное использование контейнера работает в Apache Tez? При повторном использовании какие данные хранятся в общем месте?

В то время как Apache tez повторно использует контейнеры, происходит процесс. Кто-нибудь может объяснить мне ясно?

1 ответ

Решение

Пожалуйста, прочитайте документы Hortonworks (наиболее значительный участник Tez) здесь: https://hortonworks.com/blog/re-using-containers-in-apache-tez/

Каждая вершина в Tez указывает параметры, которые используются при запуске контейнеров. К ним относятся запрашиваемые ресурсы (память, процессор и т. Д.), Локальные ресурсы YARN, среда и параметры командной строки для задач, принадлежащих этой вершине. Когда контейнер запускается впервые, он запускается для конкретной задачи и использует параметры, заданные для задачи (или вершины) - тогда он становится подписью контейнера. Уже работающий контейнер считается совместимым для другой задачи, когда подпись запущенного контейнера является расширенным набором требований, необходимых для этой задачи.

Планировщик Tez работает с несколькими параметрами для принятия решений о назначениях задач: требования к локальности задачи, совместимость контейнеров, как описано выше, общее количество доступных ресурсов в кластере и приоритет ожидающих запросов задачи.

Когда задача завершается, и контейнер, выполняющий задачу, становится доступным для повторного использования - задача может быть не назначена ему немедленно - поскольку задачи могут не существовать, для которых данные являются локальными для узла контейнера. Планировщик Tez сначала пытается найти задачу, для которой данные будут локальными для контейнера. Если такой задачи не существует, планировщик удерживает контейнер в течение определенного времени, прежде чем фактически назначить какие-либо отложенные задачи этому контейнеру.

Каждая JVM (или контейнер) Tez содержит кэш объектов, который можно использовать для обмена данными между различными задачами, выполняющимися в одном и том же контейнере. Это простое хранилище Key-Object с различными уровнями видимости / хранения. Объекты можно кэшировать для использования в задачах, принадлежащих одному и тому же Vertex, для всех задач в группе обеспечения доступности баз данных и для задач, выполняющихся в сеансе Tez (подробнее о сеансах в следующем посте).

Другие вопросы по тегам