Hadoop, comment compresser sortie de la cartographie, mais pas le réducteur de sortie
J'ai une map-reduce programme java dans lequel j'essaie de ne se compriment la sortie de la cartographie, mais pas le réducteur de sortie. J'ai pensé que cela serait possible en définissant les propriétés suivantes dans la Configuration de l'instance comme indiqué ci-dessous. Cependant, lorsque j'exécute mon travail, la sortie générée par le réducteur est toujours compressé depuis le fichier généré est: part-r-00000.gz. Quelqu'un a réussi à juste comprimé le mappeur de données, mais pas le réducteur? Est-il même possible?
//Compresser sortie de la cartographie
conf.setBoolean("mapred.output.compress", true);
conf.set("mapred.output.compression.type", CompressionType.BLOCK.toString());
conf.setClass("mapred.output.compression.codec", GzipCodec.class, CompressionCodec.class);
Vous devez vous connecter pour publier un commentaire.
Avec MR2, maintenant, nous devons définir
Pour plus de détails, voir: http://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
mapred.compresser.carte.sortie: Est la compression de données entre le mappeur et le réducteur. Si vous utilisez snappy codec ce sera probablement augmenter de lecture vitesse d'écriture et de réduire la surcharge du réseau. Ne vous inquiétez pas cracher ici. Ces fichiers ne sont pas stockées dans hdfs. Ils sont des fichiers temporaires qui n'existent que pour la carte de réduire l'emploi.
mapred.carte.de sortie.la compression.codec: je voudrais utiliser snappy
mapred.de sortie.compresser: Cet indicateur booléen définira est l'ensemble de la carte/réduire le job de sortie des données compressées. Je serais toujours la définir à vrai également. Plus rapide des vitesses de lecture/écriture et disque en moins espacé utilisé.
mapred.de sortie.la compression.type: j'ai utiliser le bloc. Cela permettra à la compression splittable même pour tous les formats de compression (gzip, accrocheur, et bzip2) assurez-vous simplement que vous êtes à l'aide d'un splitable format de fichier comme séquence, RCFile, ou Avro.
mapred.de sortie.la compression.codec: c'est le codec de compression pour le travail map/reduce. J'utilise surtout l'un des trois: Snappy (plus Rapide r/w 2x-3x compression), gzip (normal r rapide w 5x-8x compression), bzip2 (lente r/w 8x-12x compression)
Souviens aussi de la compression mapred de sortie, qu'en raison du découpage de la compression diffère de base sur votre ordre de tri. La proximité comme des données est le meilleur de la compression.
de sortie"compression" de compresser votre résultat final. Pour compresser la carte-sorties uniquement, utiliser quelque chose comme ceci:
NOTE1: mapred compression de la sortie ne devrait jamais être le BLOC. Voir la suite de JIRA pour plus de détails:
https://issues.apache.org/jira/browse/HADOOP-1194
NOTE2: GZIP et BZ2 consomment beaucoup de ressources PROCESSEUR. Si vous avez de réseau lent et GZIP ou BZIP2 donne de meilleurs taux de compression, il peut justifier les dépenses de cycles CPU. Sinon, envisagez LZO ou Snappy codec.
NOTA 3: si vous souhaitez utiliser une carte de sortie de la compression, envisager d'installer les codecs natifs qui est invoquée via JNI et vous donne de meilleures performances.
Si vous utilisez MapR de distribution d'Hadoop, vous pouvez obtenir les avantages de la compression sans tous les folderol avec les codecs.
MapR comprime nativement au niveau du système de fichiers, de sorte que l'application n'a pas besoin de savoir ou de soins. La Compression peut être activée ou désactivée au niveau du répertoire de sorte que vous pouvez compresser les entrées, mais pas de sorties ou de ce que vous voulez. En général, la compression est tellement rapide (il utilise un algorithme similaire à vif par défaut) que la plupart des applications, voir une amélioration des performances lors de l'utilisation de compression natif. Si vos fichiers sont déjà compressés, qui est détectée très rapidement et la compression est désactivée automatiquement de sorte que vous ne voyez pas une pénalité, soit.