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 Amazon EMR ha una velocità di lettura massima 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 Task Configuration nella Amazon EMR Developer Guide.)

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.

Puoi usare il AWS Management Console per gestire la dimensione o il numero di nodi nel tuo 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.

Il valore mapred.tasktracker.map.tasks.maximum come azione di bootstrap viene impostato al primo avvio del EMR cluster Amazon. Per ulteriori informazioni, consulta (Facoltativo) Creare azioni Bootstrap per installare software aggiuntivo nella Amazon EMR Management Guide.

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.