2013-06-06 3 views

Répondre

1

DistributedCache est une installation fournie par la carte -Réduire l'infrastructure pour mettre en cache les fichiers (texte, archives, bocaux, etc.) nécessaires aux applications.

Applications spécifient les fichiers, via urls (HDFS: // ou http: //) être mis en cache via le JobConf. Le DistributedCache suppose que les fichiers spécifiés via HDFS: // urls sont déjà présentes sur le FileSystem au chemin d'accès spécifié par l'URL.

Le cadre copie les fichiers nécessaires sur le nœud esclave avant toutes les tâches pour le travail sont exécutées sur ce nœud. Son efficacité provient du fait que les fichiers ne sont copiés qu'une fois par travail et de la possibilité de mettre en cache les archives qui ne sont pas archivées sur les esclaves. DistributedCache peut être utilisé pour distribuer des fichiers de données/textes simples et en lecture seule et/ou des types plus complexes tels que des archives, des bocaux, etc. Les archives (fichiers zip, tar et tgz/tar.gz) ne sont pas archivées à l'adresse suivante: http://www.google.com/support. les nœuds esclaves. Les bocaux peuvent être éventuellement ajoutés au chemin de classe des tâches, un mécanisme de distribution logicielle rudimentaire. Les fichiers ont des autorisations d'exécution. Facultativement, les utilisateurs peuvent également lui indiquer de créer un lien symbolique entre le (s) fichier (s) de cache distribué (s) et le répertoire de travail de la tâche.

DistributedCache pistes horodatages de modification des fichiers de cache. Il est clair que les fichiers de cache ne doivent pas être modifiés par l'application ou de manière externe pendant l'exécution du travail.

Pour Python mrJob: -

Je pense que vous devez utiliser

mrjob.compat.supports_new_distributed_cache_options (version)

Et puis utilisez -files et -Politique au lieu de - cacheFile et -cacheArchive

Peut être vous obtiendrez plus here

1

Je ne sais pas ce que vous avez tout à fait d'essayer de le faire, mais peut-être que vous pouvez utiliser la fonction Distributed Cache pour y parvenir.

cas d'utilisation de l'échantillon pour le cache distribué:

Input to mapper: customer reviews 
You want to process only those reviews which contain certain keywords, which are stored in a "words.txt" file. 
You can put words.txt into the Distributed Cache, which makes it available to the mapper & reducer. 

Je ne sais pas exactement comment il est fait pour Python streaming, mais il ne devrait pas être difficile à comprendre

Questions connexes