web-dev-qa-db-fra.com

hadoop copier un dossier du système de fichiers local sur HDFS

Je dois copier un dossier du système de fichiers local vers HDFS. Je n'ai trouvé aucun exemple de déplacement d'un dossier (y compris de tous ses sous-dossiers) vers HDFS.

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

52
Tariq

Tu pourrais essayer:

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

ou même

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

Par défaut, put et copyFromLocal téléchargent les répertoires de manière récursive sur HDFS.

78
Ashrith

Si vous copiez un dossier à partir du répertoire local, il copiera le dossier avec tous ses sous-dossiers sur HDFS.

Pour copier un dossier de local à hdfs, vous pouvez utiliser

hadoop fs -put localpath

ou

hadoop fs -copyFromLocal localpath

ou

hadoop fs -put localpath hdfspath

ou

hadoop fs -copyFromLocal localpath hdfspath

Note:

Si vous ne spécifiez pas le chemin d'accès hdfs, la copie du dossier sera alors copiée sur hdfs avec le même nom que ce dossier.

Pour copier de hdfs au local

 hadoop fs -get hdfspath localpath
27
Kumar

En bref

hdfs dfs -put <localsrc> <dest>

En détail avec exemple:

Vérification de la source et de la cible avant de placer des fichiers dans HDFS

[cloudera@quickstart ~]$ 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

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

Copier des fichiers HDFS à l’aide de la commande -put ou -copyFromLocal

[cloudera@quickstart ~]$ hdfs dfs -put files/ files

Vérifier le résultat en HDFS

[cloudera@quickstart ~]$ 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

[cloudera@quickstart ~]$ 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
17
mrsrinivas

Vous pouvez utiliser :

1.LOADING DATA DE FICHIER LOCAL VERS HDFS

Syntaxe: $ hadoop fs –copyFromLocal

EX: $ hadoop fs –copyFromLocal localfile1 HDIR

2. Copie de données de HDFS à Local

Sys: $ hadoop fs –copyToLocal <nouveau nom de fichier>

EX: $ hadoop fs –copyToLocal hdfs/nom_fichier myunx;

3
Jubrayil Jamadar

Pour copier un fichier de dossier de local à hdfs, vous pouvez utiliser la commande ci-dessous

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

ou

hadoop fs -copyFromLocal /path/localpath  /path/hdfspath
2
Praveenkumar Sekar

Accédez au dossier ou au chemin "/ install/hadoop/datanode/bin" où vous pouvez exécuter vos commandes hadoop:

Pour placer les fichiers dans HDFS: Format: hadoop fs -put "Chemin système local"/nomfichier.csv "Chemin de destination HDFS"

par exemple) ./ hadoop fs -put /opt/csv/load.csv/user/load

Ici, le fichier /opt/csv/load.csv est le chemin du fichier source de mon système linux local.

/ user/load signifie le chemin de destination du cluster HDFS dans "hdfs: // hacluster/user/load"

Pour obtenir les fichiers de HDFS sur le système local: Format: hadoop fs -get "/ HDFSsourcefilepath" "/ localpath"

par exemple) hadoop fs - get /user/load/a.csv/opt/csv /

Après avoir exécuté la commande ci-dessus, le fichier a.csv de HDFS serait téléchargé dans le dossier/opt/csv du système linux local.

Ces fichiers téléchargés peuvent également être consultés via l'interface utilisateur Web HDFS NameNode.

1
Prasanna

En ligne de commande -

Hadoop fs -copyFromLocal

Hadoop fs -copyToLocal

Ou vous utilisez également la bibliothèque spark FileSystem pour obtenir ou mettre un fichier hdfs.

J'espère que c'est utile.

0
user11714872