NameNode должен только дождаться минимальной репликации блоков перед успешным возвратом.

У меня вопрос по блок-отчетам, отправляемым в NameNode от DataNodes, когда клиент пишет в HDFS, а также акку от NameNode клиенту о закрытии файла.

Не мог бы кто-нибудь уточнить этот абзац книги Hadoop:

«Когда клиент закончил запись данных, он вызывает close() в потоке. Это действие сбрасывает все оставшиеся пакеты в конвейер узла данных и ждет подтверждения, прежде чем связаться с узлом имени, чтобы сообщить, что файл завершен. Узел имени уже знает, какой блоков, из которых состоит файл, поэтому ему нужно только дождаться минимальной репликации блоков, прежде чем успешно вернуться."

"успешное возвращение" неоднозначно: это может означать успешный возврат к клиенту (но это не может произойти раньше, чем через несколько часов, пока не прибудет следующий отчет о блокировке, что для меня не имеет смысла), или это может означают успешный, но асинхронный и локальный возврат на NameNode через несколько часов, при этом клиенту не нужно ждать этого.

Этот вопрос немного связан с обсуждением здесь, где комментарий спрашивает если запись в HDFS асинхронная или синхронная есть.

  • Например, в случае async это будет означать, что вызов close() немедленно возвращается клиенту, а NameNode после этого асинхронно проверяет репликацию;
  • в случае синхронизации это будет означать, что NameNode должен будет дождаться отчетов о блоках от DataNodes, прежде чем подтвердить клиенту информацию о закрытии файла().

Другой комментарий в предыдущем обсуждении указывает на этот источник для уточнения, где это говорит

«Вызов complete () не вернет true, пока все блоки файла не будут реплицированы минимальное количество раз. Таким образом, сбои DataNode могут привести к тому, что клиент вызовет complete () несколько раз, прежде чем добиться успеха».

Этот источник информации, как правило, выбирает объяснение sync.

Я был бы очень признателен, если бы инженер Hadoop мог посоветовать это. Заранее большое спасибо.


person triples    schedule 22.03.2019    source источник