February 5, 2021

Главные команды распределенной файловой системы Hadoop

Специалистам,  работающим с огромными массивами данных, необходимо осваивать большие  технологии. Об одной из них и пойдет речь в этой статье.

Hadoop  - это проект фонда Apache Software Foundation, предназначенный для  распределенного хранения и распределенной обработки данных в кластере,  содержащем множество узлов. За первую функцию отвечает распределенная файловая система Hadoop (Hadoop distributed file system, HDFS). Взаимодействие с ней во многом напоминает работу с файловой системой Linux.

Для работы с HDFS будем использовать виртуальную машину  Hortonworks Data Platform (HDP), о настройках которой речь шла в прошлой  статье. Итак, после загрузки виртуальной машины запускаем интерфейс  командной строки по адресу 127.0.0.1:4200 и проходим аутентификацию.  Теперь можно приступить к взаимодействию с HDFS.

Диагностика HDFS

Для вывода отчета о работе системы можно набрать команду:

hdfs dfsadmin -report

Работа с папками

Просмотр

Для просмотра содержимого директории набираем:

hdfs dfs -ls путь

Например, просмотрим корневую директорию:

Обратите внимание, что эта и многие последующие команды имеют схожее с Linux содержимое, только начинаются с "hdfs dfs -".

Создание

Для создания директории следует набрать:

hdfs dfs -mkdir путь_с_именем

Создадим в корне папку data, куда будем помещать наборы данных для работы:

Удаление

Для удаления директории следует набрать команду:

hdfs dfs -rm -r путь_с_именем

Удалим папку data:

Если сталкиваетесь с ошибкой ...Failed to move to trash...Permission denied..., то

добавьте флаг skipTrash:

hdfs dfs -rm -r -skipTrash путь_с_именем

Работа с файлами

Создание

Для создания файла можно набрать следующую команду:

hdfs dfs -touchz путь_с_именем_файла

Создадим в корневой папке директорию data и в ней файл 1.txt:

Удаление

Для удаления файла следует набрать команду:

hdfs dfs -rm -r путь_с_именем_файла

Удалим файл /data/1.txt:

Перемещение файла из локальной системы в папку на кластере

Сначала скачаем файл в локальную файловую систему (предварительно опять создаем удаленную выше папку data) посредством команды:

wget -q ссылка -O путь_с_названием_к_локальному_объекту

Затем переносим файл из локальной системы в кластер с помощью следующей команды:

hdfs dfs -put путь_с_названием_к_локальному_объекту путь_с_названием_в_кластере

Перемещение файла из кластера в локальную систему

Для этого воспользуемся следующей командой:

hdfs dfs -get путь_с_названием_в_кластере путь_с_названием_к_локальному_объекту

Копирование файлов между папками в кластере

Создадим еще одну директорию data2 и перенесем туда файл pushkin из data. Для этого можно воспользоваться командой, имеющей следующий вид:

hdfs dfs -cp путь_откуда путь_куда

Перемещение или переименование файлов

Для этого можно воспользоваться следующей командой:

hdfs dfs -mv путь_откуда путь_куда
Переместим файл pushkin из папки data2 в data c новым именем pushkin2:

Отображение содержимого файлов

Для отображения содержимого файла можно использовать следующую команду:

hdfs dfs -cat путь_с_названием_в_кластере

либо, если файл большой, можно отобразить только последний килобайт:

hdfs dfs -tail путь_с_названием_в_кластере

А какие еще команды для работы с HDFS часто используете вы?