NameNode должен только ждать, пока блоки будут минимально реплицированы, прежде чем успешно вернуться - PullRequest
2 голосов
/ 22 марта 2019

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

Может кто-нибудь любезно прояснить этот абзац книги Hadoop:

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

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

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

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

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

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

Этот источник информации имеет тенденцию выбирать объяснение sync .

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

...