Compartir a través de


Alta E/S de etapa de Spark

A continuación, examine las estadísticas de E/S de la fase más larga de nuevo:

E/S de fase alta de E/S de larga fase

¿Qué es la E/S alta?

¿Cuántos datos deben estar en una columna de entrada/salida para ser considerados altos? Para averiguarlo, empiece por el número más alto de cualquiera de las columnas especificadas. A continuación, tenga en cuenta el número total de núcleos de CPU que tiene en todos sus trabajadores. Por lo general, cada núcleo puede leer y escribir aproximadamente 3 MB por segundo.

Divida la columna de E/S más grande por el número de núcleos de trabajo del clúster y, a continuación, divida eso por segundos de duración. Si el resultado es de aproximadamente 3 MB, es probable que esté limitado por E/S. Eso sería una E/S alta.

Entrada alta

Si ve una gran cantidad de entradas en la fase, significa que está pasando mucho tiempo leyendo datos. En primer lugar, identifique qué datos está leyendo esta fase. Consulte Identificación de una lectura costosa en el DAG de Spark.

Después de identificar los datos específicos, estos son algunos enfoques para acelerar las lecturas:

  • Use Delta.
  • Pruebe Photon. Puede ayudar mucho con la velocidad de lectura, especialmente para tablas amplias.
  • Haga que la consulta sea más selectiva, por lo que no es necesario leer tantos datos.
  • Reconsidera el diseño de los datos para que el salto de datos sea más eficaz.
  • Si está leyendo los mismos datos varias veces, use la caché delta.
  • Si va a realizar una unión, intente hacer que DFP funcione.

Rendimiento alto

Si observa una gran cantidad de resultados de su etapa, significa que está dedicando mucho tiempo a registrar datos. Estos son algunos enfoques para resolver esto:

Orden aleatorio alto

Si no está familiarizado con el shuffle, este es el momento de aprender.

Sin alta E/S

Si no ve una E/S alta en ninguna de las columnas, tendrá que investigar más a fondo. Consulte Fase de Spark lenta con poca E/S.