Compartir a través de


E/S de fase alta de Spark

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

E/S de fase alta

¿Qué es la E/S alta?

¿Cuántos datos deben estar en una columna de E/S que se debe considerar alta? 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 nuestros 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 luego divida eso por segundos de duración. Si el resultado es de aproximadamente 3 MB, es probable que esté enlazado a 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 anchas.
  • Haga que la consulta sea más selectiva, por lo que no es necesario leer tantos datos.
  • Reconsiderar el diseño de datos para que la omisión de datos sea más eficaz.
  • Si’lee los mismos datos varias veces, use el caché delta.
  • Si va a hacer una unión, considere la posibilidad de hacer funcionar DFP.

Salida alta

Si ve una gran cantidad de resultados de la fase, significa que dedica mucho tiempo a escribir datos. Estos son algunos enfoques para resolver esto:

Orden aleatorio alto

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

Sin E/S alta

Si no ve una E/S alta en ninguna de las columnas, debe profundizar más. Consulte Fase de Spark lenta con poca E/S.