hadoop copier un dossier du système de fichiers local dans HDFS
6 réponses
Vous pourriez essayer:
hadoop fs -put /path/in/linux /hdfs/path
ou encore
hadoop fs -copyFromLocal /path/in/linux /hdfs/path
Par défaut, les deux put
et copyFromLocal
télécharge les répertoires de façon récursive vers HDFS.
si vous copiez un dossier depuis local, il copiera le dossier avec tous ses sous-dossiers vers HDFS.
pour copier un dossier du local au 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
Remarque:
si vous n'êtes pas spécifié HDFS path, alors la copie du dossier sera copiée sur hdfs avec le même nom de dossier.
copier À partir de hdfs local
hadoop fs -get hdfspath localpath
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 les fichiers HDFS en utilisant -put
ou -copyFromLocal
commande
[cloudera@quickstart ~]$ hdfs dfs -put files/ files
Vérifier le résultat dans 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
Vous pouvez utiliser :
1.CHARGEMENT DES DONNÉES DU FICHIER LOCAL VERS HDFS
syntaxe:$hadoop fs-copyFromLocal
EX: $hadoop fs-copyFromLocal localfile1 HDIR
2. Copier des données de HDFS vers Local
Sys: $hadoop fs –copyToLocal < nouveau nom de fichier>
EX: $hadoop fs-copyToLocal hdfs/filename myunx;
pour copier un fichier de dossier du local au hdfs, vous pouvez la commande ci-dessous
hadoop fs -put /path/localpath /path/hdfspath
ou
hadoop fs -copyFromLocal /path/localpath /path/hdfspath
naviguez vers votre dossier ou chemin "/install/hadoop/datanode/bin" où vous pouvez exécuter vos commandes hadoop:
pour placer les fichiers dans HDFS: Format: hadoop fs -mettre "système Local"chemin/nom de fichier.csv "HDFS chemin de destination"
par exemple)./hadoop fs -mettre /opt/csv/charge.csv /utilisateur/charger
ici le/opt/csv / load.csv est le chemin du fichier source de mon système linux local.
/user/chargement signifie cluster HDFS chemin d'accès de destination en "hdfs://hacluster/utilisateur/charger"
Pour récupérer les fichiers à partir HDFS système local: Format: hadoop fs-get "/ HDFSsourcefilepath" "/ localpath"
par exemple)hadoop fs -get /utilisateur/de charge/un.csv /opt/csv/
après avoir exécuté la commande ci-dessus, A. csv from HDFS serait téléchargé dans le dossier / opt / csv du système linux local.
ces fichiers téléchargés peuvent aussi être consultés via L'interface web NameNode de HDFS.