Mengapa aplikasi Spark Anda lambat atau tidak sama sekali. Bagian 1: manajemen memori

Kami mengundang calon siswa dalam kursus "Ecosystem Hadoop, Spark, Hive" ke webinar terbuka dengan topik "Spark Streaming" . Di webinar, peserta, bersama dengan seorang ahli, akan berkenalan dengan Streaming Spark dan Streaming Terstruktur, mempelajari fitur mereka, dan menulis aplikasi pemrosesan streaming sederhana.



Dan sekarang kami berbagi dengan Anda terjemahan tradisional dari materi yang bermanfaat.






Aplikasi Spark mudah untuk ditulis dan dipahami jika semuanya berjalan sesuai rencana. Namun, ini menjadi sangat sulit ketika aplikasi Spark mulai berjalan dengan lambat atau macet. Terkadang, aplikasi yang disetel dengan baik dapat mogok karena perubahan data atau komposisi data. Terkadang aplikasi yang telah bekerja dengan baik sejauh ini mulai berperilaku buruk karena kurangnya sumber daya. Daftarnya terus bertambah.





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





Tugas percikan dan komponen memori selama pemindaian tabel
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