es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo mejorar la utilización de trabajos en Spark, basado en YARN o Kubernetes.

Estoy trabajando en mejorar la utilización del clúster, y el clúster es YARN y será Kubernetes.

Mi pregunta es cómo mejorar la proporción de utilización.
¿Cómo abordar esta pregunta, existen algunos métodos?
¿Para YARN y para Kubernetes?

Para YARN, he leído algunos artículos o visto algunos videos.
YARN tiene NM y RM.

  1. Sobresuscripción basada en datos históricos de ejecución de trabajos. (https://databricks.com/session/oversubscribing-apache-spark-resource-usage-for-fun-and)
    a. establecer una MEMORIA adecuada (5G) y CPU para el trabajo
    b. establecer un búfer para el trabajo (1G)
    c. realizar preempción activamente en NM

  2. Sobresuscripción basada en la utilización en tiempo real. (https://research.facebook.com/publications/ubis-utilization-aware-cluster-scheduling)
    a. no modificar la configuración del trabajo
    b. monitorear la utilización y asignación de NM, hacer sobresuscripción en el nodo
    c. realizar preempción activamente en NM

  3. Sobresuscripción de recursos de NM
    a. NM tiene 100G y 30 núcleos físicos, pero se anuncian 120G y 40 núcleos.
    b. la preempción es manejada por Spark o el marco de trabajo de YARN.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para Kubernetes, algunos métodos para mejorar la utilización del clúster son:

    1. Utilizar el Escalador Automático de Pod Horizontales (HPA) para escalar automáticamente el número de pods en un despliegue según el uso de CPU o memoria. Esto ayuda a garantizar que los recursos se utilicen de manera eficiente y que no haya demasiados pods inactivos.
    2. Utilizar solicitudes y límites de recursos para especificar los recursos mínimos y máximos requeridos por un pod. Esto ayuda a prevenir una sobreaprovisionamiento de recursos y garantiza que el clúster se utilice de manera eficiente.
    3. Utilizar autoscalado a nivel de clúster para aumentar o disminuir dinámicamente el número de nodos en un clúster según la demanda. Esto ayuda a garantizar que los recursos estén disponibles cuando se necesiten y que los costos se minimicen cuando no se necesiten recursos.
    4. Utilizar optimizaciones específicas de la carga de trabajo, como Spark Operator para Kubernetes, para optimizar la programación y ejecución de trabajos de Spark en Kubernetes. Esto puede ayudar a reducir el tiempo de inactividad y mejorar la utilización de recursos para las cargas de trabajo de Spark.

    En general, mejorar la utilización del clúster involucra una combinación de monitoreo, autoscalado y optimizaciones específicas de la carga de trabajo. Los diferentes métodos pueden ser más o menos efectivos dependiendo de los requisitos y características específicas de la carga de trabajo y el clúster.

Comments are closed.