Pourquoi vos applications Spark sont lentes ou pas du tout. Partie 1: gestion de la mémoire

Nous invitons les futurs étudiants du cours "Ecosystem Hadoop, Spark, Hive" au webinaire ouvert sur le thème "Spark Streaming" . Lors du webinaire, les participants, accompagnés d'un expert, se familiariseront avec Spark Streaming et Structured Streaming, étudieront leurs fonctionnalités et rédigeront une application de traitement de flux simple.



Et maintenant, nous partageons avec vous la traduction traditionnelle de documents utiles.






Les applications Spark sont faciles à écrire et à comprendre lorsque tout se passe comme prévu. Cependant, cela devient très difficile lorsque les applications Spark commencent à démarrer lentement ou se bloquent. Parfois, une application bien réglée peut se bloquer en raison de modifications de données ou de modifications de composition de données. Parfois, une application qui a bien fonctionné jusqu'à présent commence à mal se comporter en raison d'un manque de ressources. La liste se rallonge de plus en plus.





Spark, , , , .., , .





, Spark . — .





Spark , (OOM) , .  , Spark . OOM:





  • Spark





  • (high concurrency)













, Spark . , , OOM, , - OOM.  Spark . OOM, . 





, . .





Spark — JVM (Java Virtual Machine) , . OutOfMemory



— OOM ( - Spark. Spark — . . , . , .





, OutOfMemory



OOM ( ) , :





  • rdd.collect()







  • sparkContext.broadcast



     





  • ,





  • Spark.sql.autoBroadcastJoinThreshold



    .





Spark . , . .





, . . , , , , .





SQL (Structured Query Language) Spark, OOM -   , , ; "spark.sql.autoBroadcastJoinThreshold



" ( ) , . 





Spark, . — ,   . .









, OOM, , Spark .





Spark , . , , , .. map-stage ( SQL), , , .





, ORC (Optimized Row Columnar)  2000 , map-stage 2000 , ,   . reduce-stage ( Shuffle), Spark "spark.default.parallelism



" RDD (Resilient Distributed Dataset), "spark.sql.shuffle.partitions



" DataSet ( ). , "spark.executor.cores



". ,   OOM ( ). , , , , OOM.





, (map) SQL HDFS ( Hadoop distributed file system) Parquet/ORC. HDFS Spark 128 .  , 10 , 128*10 . , .





Spark Parquet ( ) . , Spark Parquet . Parquet , .  . , Spark . , , , , . .





Tâches Spark et composants de mémoire lors de l'analyse de table
Spark

, , . , (broadcast join), (broadcast variables) . , .









Spark's Catalyst , , . , Parquet/ORC. , . , .





. , , . . () , .









Spark. .









. , -. spark.executor.memory



spark.driver.memory



.  , . . Unravel (Unravel Data Operations Platform) .









, YARN (Yet Another Resource Negotiator — ), OOM (killed) - YARN. "YARN kill" :





YARN Spark, . — off-heap , JVM , JVM. spark.yarn.executor.memoryOverhead



. 10% .









Spark , Spark. Spark , . , , .





Spark : . , , - , . .





,   (  — 300). "spark.memory.fraction



". — 60%. 50% ( "spark.memory.storageFraction



") .





, , , , . , , . , , , , , .





, , "spark.memory.storageFraction



" , .





Spark , , . . () () GC (Garbage Collector), . .





. , , . , . , , .





Spark YARN, NodeManager ( ) , . NodeManager 1 . , , - , NodeManager . NodeManager, .





№1,

Spark — . , Spark . Spark . , . , , .





, Spark. , Unravel , , , . -, Unravel . Spark.





, Spark : , , , , Spark.






« Hadoop, Spark, Hive».



«Spark Streaming».












All Articles