Consideraciones - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Consideraciones

Tenga en cuenta estos comportamientos y limitaciones cuando utilice el conector de DynamoDB con Apache Spark o Apache Hive.

Consideraciones a la hora de utilizar el conector de DynamoDB con Apache Spark

  • Spark SQL no admite la creación de una tabla Hive con la opción de gestor de almacenamiento. Para obtener más información, consulte Especificación de un formato de tablas Hive en la documentación de Apache Spark.

  • Spark SQL no admite la STORED BY operación con el gestor de almacenamiento. Si desea interactuar con una tabla de DynamoDB a través de una tabla Hive externa, utilice Hive para crear primero la tabla.

  • Para convertir una consulta en una consulta de DynamoDB, el conector de DynamoDB utiliza inserción de predicados. La inserción de predicados filtra los datos por una columna que está asignada a la clave de partición de una tabla de DynamoDB. La pulsación predicada solo funciona cuando se utiliza el conector con Spark SQL y no con el. MapReduce API

Consideraciones a la hora de utilizar el conector de DynamoDB con Apache Hive

Ajuste del número máximo de mapeadores

  • Si utiliza la SELECT consulta para leer datos de una tabla Hive externa que se asigna a DynamoDB, el número de tareas de mapa EMR en Serverless se calcula como el rendimiento de lectura total configurado para la tabla de DynamoDB, dividido por el rendimiento por tarea de mapa. El rendimiento predeterminado por tarea de asignación es 100.

  • El trabajo de Hive puede utilizar un número de tareas de mapa superior al número máximo de contenedores configurados por aplicación EMR sin servidor, en función del rendimiento de lectura configurado para DynamoDB. Además, una consulta de Hive que tarde bastante en ejecutarse puede consumir toda la capacidad de lectura aprovisionada de la tabla de DynamoDB. Esto afecta negativamente a otros usuarios.

  • Puede usar la propiedad dynamodb.max.map.tasks para establecer un límite superior para las tareas de asignación. También puede utilizar esta propiedad para ajustar la cantidad de datos que lee cada tarea de asignación en función del tamaño del contenedor de tareas.

  • Puede establecer la propiedad dynamodb.max.map.tasks en el nivel de consulta de Hive o en la clasificación hive-site del comando start-job-run. Este valor debe ser igual o superior a 1. Cuando Hive procesa la consulta, el trabajo de Hive resultante no usa más que los valores de dynamodb.max.map.tasks cuando realiza lecturas en la tabla de DynamoDB.

Ajuste del rendimiento de escritura por tarea

  • El rendimiento de escritura por tarea en EMR Serverless se calcula dividiendo el rendimiento de escritura total configurado para una tabla de DynamoDB por el valor de la propiedad. mapreduce.job.maps Para Hive, el valor predeterminado de esta propiedad es 2. Por lo tanto, las dos primeras tareas de la fase final del trabajo de Hive pueden consumir todo el rendimiento de escritura. Esto lleva a limitar la escritura de otras tareas del mismo trabajo o en otros trabajos.

  • Para evitar la limitación de la escritura, puede establecer el valor de la propiedad mapreduce.job.maps en función del número de tareas de la etapa final o del rendimiento de escritura que desee asignar por tarea. Establezca esta propiedad en la mapred-site clasificación del comando en Serverless. start-job-run EMR