いいものをつくろう

CTOの日記

spark

spark関連のチップと実行計画の読み方

投稿日:

こんにちは

sparkをしばらく触ってきて、パフォーマンスの出すためのポイントやハマり

ポイントを未然に防ぐチップを箇条書きします。

spark関連のチップ

・spark2.3以降ならKryoSerializerをつかうとJVMでのデータコピーが速い

・spark本家のチューニングを読む

                 

・もちろんcollectなどのアクションは大量のデータに対して行わない。

・driverとexecutorを意識する

・無駄にnum_executorを上げるならdynamic allocationも検討しよう

・nullの扱い spark 機械学習でnull valueの扱い

・joinの注意点 spark join で気をつけたほうが良い点 (null値を含んだjoin)

spark よく出るエラー LiveListenerBus とRejectedExecutionException

・ML 基礎 spark ML pipelineの基礎

パフォーマンスの上げ方

・そもそも、大きなアーキテクチャでhbaseとか導入できないか?なぜ?

・stagesを少なくできないか?

・shuffle時の通信量を小さくできないか?

・Explainでさらにボトルネックをさくる

・RDDじゃなくてdataframeを極力つかう

 

spark SQLのexplainの読み方

大枠おさえる

これでUIの読み方だいたいしる。

explainの意味をしる

databricks社のエンジニアさんの解説、作っている人の話は確かそう

このスライドは必見です。

queryはハイレベルでqueryのプランニングでjobは詳細なstageとtaskって感じ

 

あとはグーグル検索でのヒットの一位だったのでこちら

以上です

 

参考参照:

Apache Spark の Physical/Logical plan の解説を試みる https://qiita.com/moomindani/items/19eb15012cb4d4aaf4b6

Sparkの内部処理を理解する https://qiita.com/uryyyyyyy/items/ba2dceb709f8701715f7
Apache Sparkコミッターが教える、Spark SQLの詳しい仕組みとパフォーマンスチューニング Part1 https://logmi.jp/tech/articles/321474

 

 

-spark

Copyright© CTOの日記 , 2020 All Rights Reserved.