Sparkアプリが遅い、またはまったくない理由。パート1:メモリ管理

コース「EcosystemHadoop、Spark、Hive」の将来の学生を、トピック SparkStreaming に関する公開ウェビナーに招待しますウェビナーでは、参加者は専門家と一緒に、SparkStreamingとStructuredStreamingに精通し、それらの機能を研究し、簡単なストリーム処理アプリケーションを作成します。



そして今、私たちはあなたと有用な資料の伝統的な翻訳を共有しています。






Sparkアプリは、すべてが計画どおりに進んだときに、書きやすく、理解しやすいものです。ただし、Sparkアプリケーションの起動が遅くなったり、クラッシュしたりすると、これは非常に困難になります。データの変更やデータ構成の変更により、適切に調整されたアプリケーションがクラッシュする場合があります。これまでうまく機能していたアプリケーションが、リソース不足のために動作が悪くなることがあります。リストはどんどんと続きます。





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





テーブルスキャン中のSparkタスクとメモリコンポーネント
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