Diversi luoghi indicano che il numero predefinito di riduttori in un lavoro Hadoop è 1. È possibile utilizzare il simbolo mapred.reduce.tasks per impostare manualmente il numero di riduttori.In che modo Hive sceglie il numero di riduttori per un lavoro?
Quando si esegue un lavoro Hive (su Amazon EMR, AMI 2.3.3), ha un numero di riduttori maggiore di uno. Guardando le impostazioni del lavoro, qualcosa ha impostato mapred.reduce.tasks, presumo Hive. Come sceglie quel numero?
Nota: qui ci sono alcuni messaggi durante l'esecuzione di un lavoro alveare che dovrebbe essere un indizio:
...
Number of reduce tasks not specified. Estimated from input data size: 500
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=<number>
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=<number>
In order to set a constant number of reducers:
set mapred.reduce.tasks=<number>
...
Buona domanda. Nello specifico, quando sceglie l'hive 'Numero di operazioni ridotte determinate al momento della compilazione' e quando sceglie di fare' stimato dalle dimensioni dei dati di input'? – ihadanny
aggiunto nella risposta sotto –