Comment lire des fichiers compressés Snappy sur HDFS sans utiliser Hadoop?
Je suis le stockage de fichiers sur HDFS dans Snappy format de compression. J'aimerais être en mesure d'examiner ces fichiers sur mon système de fichiers Linux local pour s'assurer que les Hadoop processus qui les a créés a été réalisée correctement.
Quand je copie en local et de tenter de les compresser avec Google standard de la bibliothèque, il me dit que le fichier est manquant le Snappy identificateur. Quand j'essaie d'aller autour de ce en insérant un Snappy identifiant, il bousille la somme de contrôle.
Que puis-je faire pour lire ces fichiers sans avoir à écrire une distinct Hadoop programme ou passer à travers quelque chose comme de la Ruche?
source d'informationauteur Robert Rapplean
Vous devez vous connecter pour publier un commentaire.
J'ai enfin découvert que je peux utiliser la commande suivante pour lire le contenu d'un Snappy fichier compressé sur HDFS:
Si l'intention est de télécharger le fichier au format texte pour plus d'examen et de traitement, la sortie de cette commande peut être redirigée vers un fichier sur le système local. Vous pouvez également utiliser la tête pour simplement voir les premières lignes du fichier.
Veuillez jeter un oeil à ce post sur Cloudera blog. Il explique comment utiliser Snappy avec Hadoop. Essentiellement, Snappy fichiers de texte brut ne sont pas splittable, de sorte que vous ne pouvez pas lire un fichier unique sur plusieurs hôtes.
La solution est d'utiliser Snappy dans un format de conteneur, donc, essentiellement, vous utilisez Hadoop
SequenceFile
avec la compression Snappy. Comme décrit dans cette réponsevous pouvez définir la propriété mapred.de sortie.la compression.codec à org.apache.hadoop.io.compresser.SnappyCodec et l'installation de votre travail comme format de sortieSequenceFileOutputFormat
.Et ensuite de le lire, vous aurez uniquement besoin d'utiliser
SequenceFile.Reader
parce que le codec informations sont stockées dans le fichier d'en-tête.C'est parce que snappy utilisé par hadoop a plus de méta-données qui n'est pas undesrtood par les bibliothèques comme https://code.google.com/p/snappy/Vous devez utiliser hadoop natif snappy pour détachez le fichier de données que vous avez téléchargé.