Главные команды распределенной файловой системы 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 часто используете вы?