2017-01-04 2 views
0

J'ai un fichier compressé LZO /data/mydata.lzo et je veux l'exécuter avec un code MapReduce que j'ai. Je crée d'abord un fichier d'index en utilisant le package hadoop-lzo avec la commande suivante:Hadoop lzo split unique après index

>> hadoop jar hadoop-lzo-0.4.21.jar \ 
    com.hadoop.compression.lzo.DistributedLzoIndexer \ 
    /data/mydata.lzo 

Cela va avec succès

17/01/04 11:06:31 INFO mapreduce.Job: Running job: job_1472572940387_17794 
17/01/04 11:06:41 INFO mapreduce.Job: Job job_1472572940387_17794 running in uber mode : false 
17/01/04 11:06:41 INFO mapreduce.Job: map 0% reduce 0% 
17/01/04 11:06:52 INFO mapreduce.Job: map 86% reduce 0% 
17/01/04 11:06:54 INFO mapreduce.Job: map 100% reduce 0% 
17/01/04 11:06:54 INFO mapreduce.Job: Job job_1472572940387_17794 completed successfully 

et crée le fichier /data/mydata.lzo.index. Je veux maintenant exécuter ce par le biais d'un autre code de Java Hadoop

hadoop jar myjar.jar -input /data/mydata.lzo 

Il exécute correctement, mais prend FOREVER. Je l'ai remarqué que divise le fichier une fois (quand je lance ce même travail sur la non-LZO fichiers, il fend environ 25 fois)

mapreduce.JobSubmitter: number of splits:1 

Qu'est-ce que je fais mal?

La documentation de hadoop-lzo fait un peu défaut. Il dit "Maintenant, exécutez n'importe quel travail, disons wordcount, sur le nouveau fichier". J'ai d'abord pensé que je devrais utiliser le fichier /data/mydata.lzo.index comme entrée mais j'ai une sortie vide quand j'utilise ça. La documentation indique également "Notez que si vous oubliez d'indexer un fichier .lzo, le travail fonctionnera mais traitera le fichier entier dans une seule division, ce qui sera moins efficace." "Donc, pour une raison quelconque, il ne voit pas le index fichier.

Quelle est la bonne façon de transmettre le fichier d'index?

EDIT: Selon this issue on GitHub, le fichier d'index est déduit automatiquement et sera divisé en fonction de la taille du fichier. Je ne sais toujours pas pourquoi je reçois une seule division.

+0

quelle est la taille du fichier d'origine? Et après la compression? J'espère que la taille de votre fichier est supérieure à la propriété "min split size" –

Répondre

0

essayez ceci:

hadoop jar myjar.jar -input /data/mydata.lzo -input /data/mydata.lzo.index