Por que seus aplicativos Spark são lentos ou nem um pouco. Parte 1: gerenciamento de memória

Convidamos futuros alunos do curso "Ecossistema Hadoop, Spark, Hive" para o webinar aberto sobre o tópico "Spark Streaming" . No webinar, os participantes, junto com um especialista, irão se familiarizar com Spark Streaming e Structured Streaming, estudar seus recursos e escrever um aplicativo de processamento de stream simples.



E agora estamos compartilhando com você a tradução tradicional de materiais úteis.






Os aplicativos Spark são fáceis de escrever e de entender quando tudo sai de acordo com o planejado. No entanto, isso se torna muito difícil quando os aplicativos Spark começam a iniciar lentamente ou travar. Às vezes, um aplicativo bem ajustado pode travar devido a alterações de dados ou alterações de composição de dados. Às vezes, um aplicativo que funcionou bem até agora começa a se comportar mal devido à falta de recursos. A lista continua e continua.





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 . , , , , . .





Tarefas Spark e componentes de memória durante a verificação da tabela
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