Группировка ответов по вопросам:
HDFS против локальной файловой системы
Да, HDFS
и локальная файловая система отличаются. HDFS
- это файловая система на основе Java
, которая является слоем над собственной файловой системой (например, ext3
). Он предназначен для распределенного, масштабируемого и отказоустойчивого.
Как долго узлы данных хранят данные?
Когда данные попадают в HDFS, они разбиваются на блоки, реплицируются 3 раза (по умолчанию) и распределяются по узлам данных кластера. Этот процесс все делается автоматически. Эти данные будут оставаться в узлах данных до тех пор, пока они не будут удалены и окончательно удалены из корзины.
Расчет InputSplit
FileInputFormat.addInputPath () указывает файл или каталог HDFS, из которых файлы должны быть прочитаны и отправлены картографам для обработки. До того, как эта точка будет достигнута, данные должны быть уже доступны в HDFS, поскольку теперь они пытаются обрабатываться. Таким образом, сами файлы данных были разбиты на блоки и реплицированы по всем узлам данных. Отображение файлов, их блоков и узлов, на которых они находятся - это поддерживается главным узлом, называемым NameNode
.
Теперь, основываясь на входном пути, указанном этим API, Hadoop
будет вычислять количество InputSplits, необходимое для обработки файла (ов). Расчет InputSplits выполняется в начале работы с помощью MapReduce
. Каждый InputSplit затем обрабатывается картографом. Все это происходит автоматически при выполнении задания.
MapReduce на существующих данных
Да, программа MapReduce может работать с существующими данными в HDFS.