файл на hdfs с 3 репликациями будет храниться на 3 хостах?
файл на hdfs с 3 репликациями будет храниться на 3 хостах? Или хранить не только 3 хоста?
файл на hdfs с 3 репликациями будет храниться на 3 хостах?
файл на hdfs с 3 репликациями будет храниться на 3 хостах? Или хранить не только 3 хоста?
Файл с коэффициентом репликации 3 будет иметь каждый из его блоков, которые все это составляют, хранятся три раза (HDFS хранит блоки, а не файлы). Если у вас есть 3 узла (как в верхней части рисунка), каждый блок будет храниться один раз в каждом узле. Если у вас есть 1 узел, все блоки будут сохранены в одном узле (один раз, как прокомментировал Brandon.bell). Если у вас есть 5 узлов, и каждый файл использует более одного блока (как в нижней части рисунка), то да, будет использоваться более 3 узлов.
Причина - отказоустойчивость. Предполагая, что любые два хоста становятся недоступными (в нижнем рисунке), вы все равно можете получить все блоки, которые составляют ваши файлы. Например, если хост4 и хост5 выходят из строя, вы все равно можете извлечь блок1 из host1 и block2 из host2.
Для получения дополнительной информации см. this documentation. Я также нашел красивый комикс о репликации хаопов, в this post.
Это право, за исключением случаев, когда у вас есть только один узел, блок не будет храниться три раза на этом хосте (если вы не используете несколько экземпляров datanode). –
@ brandon.bell это правильно. Благодаря! Я обновил свой ответ. – vefthym
Если у меня есть более 5 узлов, я хочу, чтобы он хранился на 3 узлах. Затем я быстро прочитаю файл на этих трех узлах (потому что не нужно получать блоки с другого узла). Но как хранить файл на 3 узлах? – cola