pour - reducer hadoop



combien de mappeurs et de réductions seront créés pour une table partitionnée dans ruche (1)

Mappeurs:

Le nombre de mappeurs dépend de divers facteurs tels que la manière dont les données sont réparties entre les nœuds, le format d'entrée, le moteur d'exécution et les paramètres de configuration. Voir aussi ici: https://cwiki.apache.org/confluence/display/TEZ/How+initial+task+parallelism+works

MR utilise CombineInputFormat, tandis que Tez utilise des fractionnements groupés.

Tez:

set tez.grouping.min-size=16777216; -- 16 MB min split
set tez.grouping.max-size=1073741824; -- 1 GB max split

MapReduce:

set mapreduce.input.fileinputformat.split.minsize=16777216; -- 16 MB
set mapreduce.input.fileinputformat.split.minsize=1073741824; -- 1 GB

Les mappeurs s’exécutant également sur des nœuds de données où se trouvent les données, c’est pourquoi le contrôle manuel du nombre de mappeurs n’est pas une tâche facile et qu’il n’est pas toujours possible de combiner une entrée.

Réducteurs: Il est beaucoup plus facile de contrôler le nombre de réducteurs. Le nombre de réducteurs déterminé selon

mapreduce.job.reduces - Le nombre par défaut de tâches de réduction par travail. Définissez généralement une valeur proche du nombre d'hôtes disponibles. Ignoré lorsque mapred.job.tracker est "local". Hadoop a défini cette valeur sur 1 par défaut, alors que Hive utilise -1 comme valeur par défaut. En définissant cette propriété sur -1, Hive déterminera automatiquement quel devrait être le nombre de réducteurs.

hive.exec.reducers.bytes.per.reducer - La valeur par défaut dans Hive 0.14.0 et les versions antérieures est de 1 Go.

hive.exec.reducers.max - Nombre maximal de réducteurs utilisés. Si mapreduce.job.reduces est négatif, Hive l'utilisera comme nombre maximal de réducteurs lors de la détermination automatique du nombre de réducteurs.

Ainsi, si vous souhaitez augmenter le parallélisme des réducteurs, augmentez hive.exec.reducers.max et diminuez hive.exec.reducers.bytes.per.reducer

Je suis toujours confus sur le nombre de mappeurs et de réductions qui seront créés pour une tâche particulière dans la ruche. Par exemple, si la taille du bloc = 128 Mo et qu'il existe 365 fichiers, chacun correspond à une date dans une année (taille du fichier = 1 Mo chacun). Il y a une partition basée sur la colonne de date. Dans ce cas, combien de mappeurs et de réducteurs seront exécutés lors du chargement des données?





mapper