Подтвердить что ты не робот

Hasoop скопировать локальную папку файловой системы в HDFS

Мне нужно скопировать папку из локальной файловой системы в HDFS. Я не смог найти ни одного примера перемещения папки (включая все ее подпапки) в HDFS

$ hadoop fs -copyFromLocal/home/ubuntu/Source-Folder-To-Copy HDFS-URI

4b9b3361

Ответ 1

Вы можете попробовать:

hadoop fs -put /path/in/linux /hdfs/path

или даже

hadoop fs -copyFromLocal /path/in/linux /hdfs/path

По умолчанию оба put и copyFromLocal будут загружать каталоги рекурсивно в HDFS.

Ответ 2

Если вы скопируете папку из локальной, она скопирует папку со всеми ее подпапками в HDFS.

Для копирования папки из локальной в hdf можно использовать

hadoop fs -put localpath

или

hadoop fs -copyFromLocal localpath

или

hadoop fs -put localpath hdfspath

или

hadoop fs -copyFromLocal localpath hdfspath

Примечание:

Если вы не указали путь hdfs, то копия папки будет скопирована в hdfs с тем же именем этой папки.

Скопировать из hdfs в локальный

 hadoop fs -get hdfspath localpath

Ответ 3

Короче

hdfs dfs -put <localsrc> <dest>

Подробно с примером:

Проверка источника и цели перед размещением файлов в HDFS

[[email protected] ~]$ ll files/
total 132
-rwxrwxr-x 1 cloudera cloudera  5387 Nov 14 06:33 cloudera-manager
-rwxrwxr-x 1 cloudera cloudera  9964 Nov 14 06:33 cm_api.py
-rw-rw-r-- 1 cloudera cloudera   664 Nov 14 06:33 derby.log
-rw-rw-r-- 1 cloudera cloudera 53655 Nov 14 06:33 enterprise-deployment.json
-rw-rw-r-- 1 cloudera cloudera 50515 Nov 14 06:33 express-deployment.json

[[email protected] ~]$ hdfs dfs -ls
Found 1 items
drwxr-xr-x   - cloudera cloudera          0 2017-11-14 00:45 .sparkStaging

Скопируйте файлы HDFS с помощью команды -put или -copyFromLocal

[[email protected] ~]$ hdfs dfs -put files/ files

Проверьте результат в HDFS

[[email protected] ~]$ hdfs dfs -ls
Found 2 items
drwxr-xr-x   - cloudera cloudera          0 2017-11-14 00:45 .sparkStaging
drwxr-xr-x   - cloudera cloudera          0 2017-11-14 06:34 files

[[email protected] ~]$ hdfs dfs -ls files
Found 5 items
-rw-r--r--   1 cloudera cloudera       5387 2017-11-14 06:34 files/cloudera-manager
-rw-r--r--   1 cloudera cloudera       9964 2017-11-14 06:34 files/cm_api.py
-rw-r--r--   1 cloudera cloudera        664 2017-11-14 06:34 files/derby.log
-rw-r--r--   1 cloudera cloudera      53655 2017-11-14 06:34 files/enterprise-deployment.json
-rw-r--r--   1 cloudera cloudera      50515 2017-11-14 06:34 files/express-deployment.json

Ответ 4

Вы можете использовать:

1. ЗАПИСЬ ДАННЫХ ИЗ ЛОКАЛЬНОГО ФАЙЛА В HDFS

Синтаксис: $hadoop fs -copyFromLocal

EX: $hadoop fs -copyFromLocal localfile1 HDIR

2. Копирование данных с HDFS на локальный

Sys: $hadoop fs -copyToLocal < новое имя файлa >

EX: $hadoop fs -copyToLocal hdfs/filename myunx;

Ответ 5

Чтобы скопировать файл папки с локального на hdfs, вы можете использовать следующую команду

hadoop fs -put /path/localpath  /path/hdfspath

или же

hadoop fs -copyFromLocal /path/localpath  /path/hdfspath

Ответ 6

Перейдите в папку "/install/hadoop/datanode/bin" или путь, где вы можете выполнить команды hadoop:

Чтобы разместить файлы в HDFS: Формат: hadoop fs -put "Путь к локальной системе"/filename.csv "Путь назначения HDFS"

например)./hadoop fs -put/opt/csv/load.csv/user/load

Здесь /opt/csv/load.csv - путь к исходному файлу из моей локальной системы Linux.

/user/load означает путь назначения кластера HDFS в "hdfs://hacluster/user/load"

Чтобы получить файлы из HDFS в локальную систему: Формат: hadoop fs -get "/HDFSsourcefilepath" "/localpath"

например) hadoop fs -get/user/load/a.csv/opt/csv/

После выполнения вышеупомянутой команды a.csv из HDFS будет загружен в папку /opt/csv в локальной системе Linux.

Эти загруженные файлы также можно увидеть через веб-интерфейс HDFS NameNode.

Ответ 7

Из командной строки -

Hadoop FS -copyFromLocal

Hadoop FS -copyToLocal

Или вы также используете библиотеку spark FileSystem, чтобы получить или поместить файл hdfs.

Надеюсь, это полезно.