Comment mettre à jour un fichier dans HDFS
Je sais que HDFS est d'écrire une fois et lu de nombreuses fois.
Supposons que si je veux mettre à jour un fichier dans HDFS est-il un moyen de le faire ?
Merci à l'avance !
Vous devez vous connecter pour publier un commentaire.
Option1:
Si vous voulez juste ajouter à un fichier existant
echo "<Text to append>" | hdfs dfs -appendToFile - /user/hduser/myfile.txt
OUhdfs dfs -appendToFile - /user/hduser/myfile.txt
puis tapez le texte sur le terminal. Une fois que vous avez fini la saisie, puis appuyez sur 'Ctrl+D'Option2:
Obtenir le fichier d'origine de HDFS pour le système de fichiers local, de le modifier, et ensuite de le remettre sur le HDFS.
hdfs dfs -get /user/hduser/myfile.txt
vi myfile.txt
#ou utiliser tout autre outil et de le modifierhdfs dfs -put -f myfile.txt /user/hduser/myfile.txt
hdfs dfs -mv /home/hduser/myfile.txt /home/hduser/old_myfile.txt
-f
drapeau pourput
de commande. Mise à jour de réponse 😉Si vous souhaitez ajouter des lignes, vous devez mettre un autre fichier et concaténer des fichiers:
De modifier toute partie du fichier qui est déjà écrit, vous avez trois options:
Obtenir le fichier de sf et de modifier leur contenu en local
hdfs dfs -copyToLocal /hdfs/source/path /localfs/destination/path
ou
hdfs dfs -cat /hdfs/source/path | modify...
L'utilisation d'une technologie de traitement de mise à jour, Carte De Réduire ou Apache Spark, le résultat apparaît comme un répertoire de fichiers et vous permettra de supprimer les anciens fichiers. Il convient de la meilleure façon.
Installer NFS ou Fusible, deux supports ajouter des opérations.
NFS Passerelle
Hadoop Fusible : mountableHDFS, aide permettant HDFS pour être monté (sur la plupart des versions d'Unix) comme une norme de système de fichiers à l'aide de la commande mount. Une fois monté, l'utilisateur peut fonctionner sur une instance de hdfs en utilisant le standard Unix utilitaires tels que ‘ls’, ‘cd’, ‘cp’, ‘mkdir’, ‘rechercher’, ‘grep’