Correo electrónico del autor del artículo: [email protected] Dirección: Huizhou, Guangdong
▲ El programa de este capítulo
⚪ Master Spark: mejor implementación de serialización;
⚪ Master Spark: usa Kryo a través del código;
⚪ Master Spark: configura múltiples directorios de archivos temporales;
⚪ Master Spark: habilita el mecanismo de ejecución especulativa;
⚪ Master Spark: evita el uso de recopilación;
⚪ Master Spark: utilice MapPartitions en lugar de map para operaciones RDD;
⚪ Master Spark: variables compartidas de Spark;
1. Ajuste de chispa—Parte 1
1. Mejor implementación de serialización
Donde Spark usa la serialización
1. Durante la reproducción aleatoria, los objetos deben escribirse en archivos temporales externos.
2. Los datos de cada partición deben enviarse al trabajador. Spark primero empaqueta el RDD en un objeto de tarea y envía la tarea al trabajador a través de la red.
3. Si RDD admite memoria + disco duro, la serialización estará involucrada siempre que los datos se escriban en el disco duro.
El valor predeterminado es la serialización de Java. Pero hay dos problemas con la serialización de Java:
1. El rendimiento es relativamente bajo,
2. La longitud del contenido binario serializado también es relativamente grande, lo que resulta en un tiempo de transmisión de red más largo.
La industria ahora elige una mejor implementación como kryo , que es más de 10 veces más rápida que la serialización de Java. Y la longitud del contenido generado también es corta. El tiempo es rápido y el espacio es pequeño, por lo que es una elección natural.
Método 1: modifique el archivo de configuración spark-defaults.conf.
configuración:
spark.serializer org.apache.spark.serializer.KryoSerializer
Nota: Separe con espacios.
Método 2: configurar al iniciar spark-shell o spark-submit.
--conf chispa.serial