Введение

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

Копирование файлов с использованием Hadoop FS Shell

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

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

    su - hadoop
  2. Создайте тестовый файл с именем source.txt в директории /home/hadoop. Выполните следующие команды:

    echo "This is a test file." > /home/hadoop/source.txt
  3. Теперь давайте скопируем локальный файл source.txt в новый целевой файл с именем destination.txt на HDFS. Используйте следующую команду:

    hdfs dfs -copyFromLocal /home/hadoop/source.txt /destination.txt
  4. Проверьте, скопирован ли файл успешно. Вы можете вывести список файлов в /, чтобы подтвердить.

    hdfs dfs -ls /

Рекурсивное копирование файлов с использованием Hadoop FS Shell

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

  1. Создайте директорию с именем source_dir в / и поддиректорию с именем subdir в /source_dir/. Выполните следующие команды:

    hdfs dfs -mkdir /source_dir
    hdfs dfs -mkdir /source_dir/subdir
  2. Разместите тестовый файл с именем file1.txt внутри директории subdir. Используйте следующую команду:

    echo "Contents of file1" > /home/hadoop/file1.txt
    hdfs dfs -put /home/hadoop/file1.txt /source_dir/subdir/
  3. Рекурсивно скопируйте всю директорию source_dir в новую целевую директорию с именем destination_dir. Попробуйте следующую команду:

    hdfs dfs -cp /source_dir/ /destination_dir

Конечно! Команда hdfs dfs -cp /source_dir /destination_dir имеет следующие компоненты:

  1. hdfs dfs -cp: Эта часть указывает на использование команды cp Hadoop Distributed File System (HDFS), которая используется для копирования файлов или директорий.
  2. /source_dir/*: Это представляет путь исходной директории. Знак подстановки * соответствует всем файлам и поддиректориям внутри этой директории.
  3. /destination_dir: Это путь целевой директории, в которую вы хотите скопировать файлы.

Кратко говоря, эта команда копирует все файлы и поддиректории из /source_dir в /destination_dir, сохраняя при этом исходные атрибуты файлов.

  1. Проверьте рекурсивное копирование, выведя содержимое директории destination_dir.

    hdfs dfs -ls -R /destination_dir

Резюме

В этом практическом занятии мы окунулись в волшебный мир Hadoop HDFS, сосредоточившись на командах hdfs dfs -copyFromLocal и hdfs dfs -copy. Создавая увлекательные сценарии и предоставляя ручное практическое занятие, цель этого практического занятия заключалась в том, чтобы повысить ваше понимание операций копирования файлов в Hadoop. Помните,熟能生巧,и овладение этими навыками赋能 вас в вашем путешествии по Hadoop.