Descubrí que AWS Glue configuró la instancia del ejecutor con un límite de memoria de 5 Gb --conf spark.executor.memory=5g y algunas veces, en un gran conjunto de datos falla con java.lang.OutOfMemoryError. Lo mismo es para la instancia del controlador --spark.driver.memory=5g. ¿Hay alguna opción para aumentar este valor?

12
Alexey Bakulin 28 feb. 2018 a las 19:21

5 respuestas

La mejor respuesta

El documentación oficial del pegamento sugiere que el pegamento no es compatible con la configuración de chispa personalizada.

También hay varios nombres de argumentos utilizados por AWS Glue internamente que nunca debe establecer:

--conf: interno a AWS Glue. ¡No ajustar!

--debug: interno de AWS Glue. ¡No ajustar!

--mode - Interno a AWS Glue. ¡No ajustar!

--JOB_NAME: interno de AWS Glue. ¡No ajustar!

¿Alguna mejor sugerencia para resolver este problema?

3
rileyss 24 jul. 2018 a las 20:51

Puede anular los parámetros editando el trabajo y agregando parámetros de trabajo. La clave y el valor que utilicé están aquí:

Clave : --conf

Valor : spark.yarn.executor.memoryOverhead = 7g

Esto parecía contradictorio ya que la clave de configuración está realmente en el valor, pero se reconoció. Entonces, si está intentando configurar spark.yarn.executor.memory, el siguiente parámetro sería apropiado:

Clave : --conf

Valor : spark.yarn.executor.memory = 7g

8
Kris Bravo 1 may. 2018 a las 19:54

A pesar de la documentación de aws que indica que el parámetro --conf no debe pasarse, nuestro equipo de soporte de AWS nos dijo que pasáramos --conf spark.driver.memory=10g que corrigió el problema que teníamos

6
xtreampb 28 ago. 2019 a las 15:39

Llegué a errores de memoria como este cuando tuve un conjunto de datos muy sesgado. En mi caso, tenía un grupo de archivos json que contenían cargas dinámicas que eran diferentes según el tipo de evento indicado en el json. Seguí presionando los errores de Memoria insuficiente sin importar si usaba los indicadores de configuración indicados aquí y aumentaba las DPU. Resulta que mis eventos estaban muy sesgados debido a que un par de tipos de eventos eran> 90% del conjunto de datos total. Una vez que agregué una "sal" a los tipos de eventos y separé los datos altamente sesgados, no detecté ningún error de memoria insuficiente.

Aquí hay una publicación de blog para AWS EMR que habla sobre el mismo error de falta de memoria con datos muy sesgados. https://medium.com/thron-tech/optimising-spark- rdd-pipelines-679b41362a8a

1
Zambonilli 11 feb. 2019 a las 16:11
  1. Abra Glue> Trabajos> Edite su trabajo> Bibliotecas de scripts y parámetros de trabajo (opcional)> Parámetros de trabajo cerca de la parte inferior
  2. Establezca lo siguiente: clave: --conf value: spark.yarn.executor.memoryOverhead = 1024 spark.driver.memory = 10g
5
ashutosh singh 29 nov. 2018 a las 12:48