2014-02-13 5 views
2

У меня есть файл.txt, который имеет 3 блока (блок a, блок b, блок c). Как hasoop записывает эти блоки в кластер. Мой вопрос: Does hadoop следовать параллельной записи? Или блок b должен ждать, пока блок a не будет записан в кластер? Или блок А и блок б и блок с являются паралельно writtten и Hadoop кластера ...Распределенная файловая система Hadoop

+0

Не могли бы вы рассказать о том, что вы подразумеваете под «блоками»? –

+0

file.txt разделен на блоки. Здесь file.txt разделен на три блока. скажем, например, размер файла.txt составляет 192 МБ, тогда файл .txt будет разделен на 3 блока eac 64 МБ. –

ответ

5

При копировании файла из локальной файловой системы HDFS или при создании нового файла в HDFS: блоки копируются последовательно - во-первых, первый блок копируется в datanode, затем второй блок копируется в datanode и так далее.

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

При копировании файла из одного места в другое место внутри кластера HDFS или между двумя кластерами HDFS: вы делаете это параллельно с использованием DistCp.

+1

. Итак, вы говорите, что из локальной файловой системы в HDFS записывает репликацию одного блока (блок a) на другие узлы данных выполняются параллельно и записывают блок a в узел данных, а блок ba datanode выполняется последовательно? –

+1

Да, это правильно. –

1

При попытке скопировать файл или создать новый файл из локальной системы любых HDFS: блоки СКОПИРОВАНЫ как последовательность DATA-NODES, это очень же, как в массиве. ЭТО КОНСУКЦИОННО-ПОСЛЕДОВАТЕЛЬНОЕ РАСПОЛОЖЕНИЕ ДАННЫХ-БЛОКОВ.

Когда это рукопожатие происходит, в тот момент, DataNode получает первый запрос, это получает реплицируется в файл, создавая SAVEPOINT, а затем тот же процесс происходит последовательно для других блоков, что делает излишним и сохраненное состояние используется для сравнения.

Принимая во внимание, что при копировании файла из одного сегмента в один и тот же блок или между двумя различными блоками вы используете AHDC (Apache Hadoop DistCp).

Hadoop предназначен для сохранения состояния данных до завершения транзакции.

+0

Итак, в этом случае блоку b нужно подождать, пока блок a не будет записан в HDFS? Я прав? –

+0

Да, это механизм последовательной копии, вам придется – D3X

Смежные вопросы