Salut, je suis un débutant en big data. J'ai cherché partout sur Internet pour trouver ce qu'est exactement le mode uber. Plus je cherchais, plus j'étais confus. Quelqu'un peut-il m'aider en répondant à mes questions?
Qu'est-ce que le mode UBER dans Hadoop2?
Normalement, les mappeurs et les réducteurs seront exécutés par ResourceManager (RM), RM créera un conteneur séparé pour le mappeur et le réducteur. La configuration Uber, permettra d'exécuter le mappeur et les réducteurs dans le même processus que l'ApplicationMaster (AM).
Emplois Uber:
Les travaux Uber sont des travaux exécutés dans MapReduce ApplicationMaster. Communiquez plutôt avec RM pour créer les conteneurs de mappage et de réduction. L'AM exécute la carte et réduit les tâches au sein de son propre processus et a évité les frais de lancement et de communication avec des conteneurs distants.
Pourquoi
Si vous avez un petit ensemble de données ou si vous souhaitez exécuter MapReduce sur une petite quantité de données, la configuration Uber vous aidera, en réduisant le temps supplémentaire que MapReduce passe normalement en phase de mappage et de réduction.
Puis-je configurer un Uber pour tous les travaux MapReduce?
Pour l'instant, les travaux sur carte uniquement et les travaux avec un seul réducteur sont pris en charge.
Uber Job se produit lorsque plusieurs mappeurs et réducteurs sont combinés pour utiliser un seul conteneur. Il y a quatre paramètres principaux autour de la configuration des travaux Uber dans le mapred-site.xml
. Options de configuration pour les travaux Uber:
mapreduce.job.ubertask.enable
mapreduce.job.ubertask.maxmaps
mapreduce.job.ubertask.maxreduces
mapreduce.job.ubertask.maxbytes
Vous pouvez trouver plus de détails ici: http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.15/bk_using-Apache-hadoop/content/uber_jobs.html
En termes de hadoop2.x, les travaux Uber sont les travaux qui sont lancés dans mapreduce ApplicationMaster lui-même, c'est-à-dire qu'aucun conteneur séparé n'est créé pour la carte et réduire les travaux et donc la les frais généraux liés à la création de conteneurs et à la communication avec eux sont enregistrés.
En ce qui concerne le travail (avec hadoop 1.x et 2.x), je suppose que la différence n'est observable que pour les terminologies 1.x et 2.x, pas de différence de travail.
Les paramètres de configuration sont les mêmes que ceux mentionnés par Navneet Kumar dans sa réponse.
PS: Utilisez-le uniquement avec un petit ensemble de données.
De très bonnes réponses sont données pour "Qu'est-ce que le mode Uber?" Juste pour ajouter plus d'informations sur "Pourquoi?"
Le maître d'application décide comment exécuter les tâches qui composent le travail MapReduce. Si le travail est petit, le maître d'application peut choisir d'exécuter les tâches dans la même machine virtuelle Java que lui. Cela se produit lorsqu'il juge que les frais généraux d'allocation et d'exécution de tâches dans de nouveaux conteneurs l'emportent sur le gain de leur exécution en parallèle, par rapport à leur exécution séquentielle sur un nœud.
Maintenant, les questions pourraient être posées comme "Qu'est-ce qui constitue un petit travail?
Par défaut, un petit travail est celui qui a moins de 10 mappeurs, un seul réducteur et une taille d'entrée inférieure à la taille d'un bloc HDFS.