Regolazione dei mappatori - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Regolazione dei mappatori

Quando Hive avvia un processo Hadoop, il processo viene elaborato da una o più attività di mappatura. Supponendo che la tabella DynamoDB disponga di capacità di throughput sufficiente, è possibile modificare il numero di mappatori nel cluster, migliorando potenzialmente le prestazioni.

Nota

Il numero di attività di mappatura utilizzate in un processo Hadoop è influenzato dalle suddivisioni degli input, dove Hadoop suddivide i dati in blocchi logici. Se Hadoop non esegue un numero sufficiente di suddivisioni di input, le operazioni di scrittura potrebbero non essere in grado di consumare tutta la velocità effettiva di scrittura disponibile nella tabella DynamoDB.

Aumento del numero di mappatori

Ogni mappatore in un Amazon EMR ha una velocità massima di lettura di 1 MiB al secondo. Il numero di mappatori in un cluster dipende dalla dimensione dei nodi nel cluster. Per informazioni sulle dimensioni dei nodi e sul numero di mappatori per nodo, consulta Configurazione attività nella Guida per gli sviluppatori di Amazon EMR.

Se la tabella DynamoDB dispone di un'ampia capacità di throughput per le letture, è possibile provare ad aumentare il numero di mappatori completando una delle seguenti operazioni:

  • Aumentare la dimensione dei nodi nel cluster. Ad esempio, se il cluster utilizza i nodi m1.large(tre mappatori per nodo), puoi provare ad eseguire l'aggiornamento ai nodi m1.xlarge (otto mappatori per nodo).

  • Aumentare il numero di nodi del cluster. Ad esempio, se si dispone di un cluster a tre nodi di nodi m1.xlarge, disponi di un totale di 24 mappatori disponibili. Se si dovesse raddoppiare la dimensione del cluster, con lo stesso tipo di nodo, si avrebbero 48 mappatori.

È possibile utilizzare il AWS Management Console per gestire la dimensione o il numero di nodi nel cluster. Per rendere effettive le modifiche, potrebbe essere necessario riavviare il cluster.

In alternativa, puoi aumentare il numero di mappatori modificando il parametro di configurazione Hadoop mapred.tasktracker.map.tasks.maximum. Questo è un parametro Hadoop, non un parametro Hive. Non pertanto è possibile modificarlo in modo interattivo dal prompt dei comandi. Se si aumenta il valore di mapred.tasktracker.map.tasks.maximum, è possibile aumentare il numero di mappatori senza aumentare la dimensione o il numero di nodi. Tuttavia, se si imposta il valore troppo alto, è possibile che i nodi del cluster esauriscano la memoria.

È possibile impostare il valore per mapred.tasktracker.map.tasks.maximum come operazione di bootstrap quando si avvia per la prima volta il cluster Amazon EMR. Per ulteriori informazioni, consulta (Facoltativo) Creazione di operazioni di bootstrap per l'installazione di software aggiuntivo nella Guida alla gestione di Amazon EMR.

Diminuzione del numero di mappatori

Se si utilizza l'istruzione SELECT per selezionare i dati da una tabella Hive esterna mappata a DynamoDB, il processo Hadoop può utilizzare tutte le attività necessarie, fino al numero massimo di mappatori nel cluster. In questo scenario, è possibile che una query Hive a lunga esecuzione possa utilizzare tutta la capacità di lettura assegnata della tabella DynamoDB, con un impatto negativo su altri utenti.

È possibile utilizzare il parametro dynamodb.max.map.tasks per impostare un limite superiore per le attività della mappa:

SET dynamodb.max.map.tasks=1

Questo valore deve essere maggiore o uguale a 1. Quando Hive elabora la query, il processo Hadoop risultante utilizzerà non più di dynamodb.max.map.tasks durante la lettura dalla tabella DynamoDB.