2017-08-04 2 views
1

Lorsque nous courons les commandes ci-dessous dans le cadre de Hadoop MapReduce le streamingComment fonctionne le streaming Hadoop

pot Hadoop /usr/lib/hadoop-mapreduce/hadoop-streamingxxxx.jar -input cities.txt -output StreamOut -mapper/bin/cat -reducer 'grep -i CA'

1) Le travail mapreduce basé sur Java fonctionne-t-il en arrière-plan?

Répondre

0

Vous avez raison, le code java s'exécute derrière la scène .. Le travail MapReduce est déclenché par StreamJob et le mappeur est juste un wrapper pour la commande spécifiée s'il ne s'agit pas d'une classe java.

0

Vous pouvez trouver votre commande interne de cet article

Tant le cartographe et le réducteur sont executables qui lisent l'entrée de stdin (ligne par ligne) et émettre la sortie vers stdout. L'utilitaire créera un travail Mapper/Réduire, soumettra le travail à un cluster approprié et surveillera la progression du travail jusqu'à la fin.

Lorsqu'un exécutable est spécifié pour les mappeurs, chaque tâche mappeur lancera l'exécutable en tant que processus séparé lorsque le mappeur est initialisé. Lorsque la tâche de mappage s'exécute, elle convertit ses entrées en lignes et alimente les lignes au stdin du processus. En attendant, le mappeur collecte les sorties orientées ligne à partir de la sortie standard du processus et convertit chaque ligne en une paire clé/valeur, qui est collectée en tant que sortie du mappeur.

Lorsqu'un exécutable est spécifié pour les réducteurs, chaque tâche réducteur lance l'exécutable en tant que processus séparé, puis le réducteur est initialisé. Lorsque la tâche du réducteur s'exécute, elle convertit ses paires clé/valeur d'entrée en lignes et transmet les lignes au fichier stdin du processus. Pendant ce temps, le réducteur recueille les sorties orientées ligne à partir de la sortie standard du processus, convertit chaque ligne en une paire clé/valeur, qui est collectée en tant que sortie du réducteur.