Hadoop FS Shell find

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом лабе мы углубимся в мир Hadoop HDFS и сосредоточимся на команде find в FS Shell. Представьте, что вы археолог, исследующий древний храм в поисках скрытых сокровищ и секретов. Ваша задача - использовать команду find в FS Shell для навигации по огромному файловой системе Hadoop, точно так же, как выкопать скрытые артефакты в храме.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopHDFSGroup(["Hadoop HDFS"]) hadoop/HadoopHDFSGroup -.-> hadoop/hdfs_setup("HDFS Setup") hadoop/HadoopHDFSGroup -.-> hadoop/fs_ls("FS Shell ls") hadoop/HadoopHDFSGroup -.-> hadoop/fs_mkdir("FS Shell mkdir") hadoop/HadoopHDFSGroup -.-> hadoop/fs_put("FS Shell copyToLocal/put") hadoop/HadoopHDFSGroup -.-> hadoop/fs_chmod("FS Shell chmod") hadoop/HadoopHDFSGroup -.-> hadoop/fs_find("FS Shell find") hadoop/HadoopHDFSGroup -.-> hadoop/fs_stat("FS Shell stat") subgraph Lab Skills hadoop/hdfs_setup -.-> lab-271870{{"Hadoop FS Shell find"}} hadoop/fs_ls -.-> lab-271870{{"Hadoop FS Shell find"}} hadoop/fs_mkdir -.-> lab-271870{{"Hadoop FS Shell find"}} hadoop/fs_put -.-> lab-271870{{"Hadoop FS Shell find"}} hadoop/fs_chmod -.-> lab-271870{{"Hadoop FS Shell find"}} hadoop/fs_find -.-> lab-271870{{"Hadoop FS Shell find"}} hadoop/fs_stat -.-> lab-271870{{"Hadoop FS Shell find"}} end

Настройка окружения

В этом шаге мы убедимся, что наше окружение Hadoop правильно настроено, прежде чем использовать команду find в FS Shell.

Откройте терминал и следуйте шагам ниже, чтобы начать.

  1. Переключитесь на пользователя hadoop:

    su - hadoop
  2. Проверьте версию Hadoop:

    hadoop version
  3. Создайте файл example.txt в корневом каталоге HDFS:

    echo "This is an example file." | hdfs dfs -put - /example.txt

Получение информации о файле

В этом шаге мы покажем, как использовать команду find в FS Shell для поиска конкретных файлов в файловой системе Hadoop.

  1. Найти файл с именем example.txt в корневом каталоге HDFS:

    hdfs dfs -find / -name "example.txt"
  2. Получить информацию о файле с использованием команды stat в FS Shell:

    hdfs dfs -stat "%n %y %r" /example.txt > /home/hadoop/example_info.txt
    cat /home/hadoop/example_info.txt

Команда hdfs dfs -stat используется для получения статуса файлов или директорий в HDFS. Вы можете использовать различные параметры форматирования для настройки выводимой информации. Вот некоторые часто используемые параметры форматирования и их значения:

  • %b: Размер файла в байтах.
  • %n: Имя файла.
  • %o: Размер блока.
  • %r: Коэффициент репликации.
  • %u: Имя пользователя.
  • %g: Имя группы.
  • %y: Время модификации в формате yyyy-MM-dd HH:mm:ss.
  • %F: Тип файла (файл, директория или символическая ссылка).

Анализ директорий

В этом шаге мы исследуем, как можно использовать find в FS Shell для анализа директорий и их содержимого.

  1. Вывести список всех директорий в каталоге /user:

    hdfs dfs -ls /user
  2. Создать директорию с именем superDirectory в каталоге /user и установить для нее права доступа 777 (rwxrwxrwx):

    hdfs dfs -mkdir /user/superDirectory
    hdfs dfs -chmod 777 /user/superDirectory
  3. Использовать find в FS Shell для поиска директории superDirectory:

    hdfs dfs -find /user -name "superDirectory"
  4. Использовать FS Shell для идентификации директорий с определенными правами доступа:

    hdfs dfs -ls /user | grep '^drwxrwxrwx'

Резюме

В этом лабе мы окунулись в мир Hadoop HDFS и исследовали возможности команды find в FS Shell. Симулируя археологическое путешествие по храму, мы узнали, как эффективно искать и анализировать файлы и директории в файловой системе Hadoop. Этот практический опыт дало представление о том, как управлять и навигатором по сложным структурам данных в Hadoop, повысив наше понимание операций HDFS.