apache/spark
5 articles
前提知識
- ›分散システムの基本的な概念を理解していること
- ›Scala の構文(case クラス、トレイト、パターンマッチング)に慣れていること
- ›Maven または SBT などのビルドツールの基礎知識があること
01
Apache Spark のコードベースを読み解く:アーキテクチャとモジュールマップ
Apache Spark のモノリポ構造、約40の Maven モジュール、主要なエントリーポイント、そして Classic と Connect のアーキテクチャ上の分割を体系的に理解するためのメンタルモデル。
02
起動シーケンス:SparkContext、SparkEnv、そしてスケジューリングスタック
spark-submit から Spark アプリケーション起動までの初期化パスを完全に追跡し、SparkContext の初期化シーケンス、SparkEnv、そして二層スケジューリングスタックを詳しく解説します。
03
Catalyst クエリパイプライン:SQL テキストから最適化プランへ
Spark SQL の Catalyst オプティマイザを深掘りする。TreeNode 抽象化、RuleExecutor フレームワーク、そしてパースから物理プランニングまでの完全なクエリパイプラインを解説します。
04
計画から実行へ:RDD・ステージ・タスク・シャッフルの仕組み
物理的な SparkPlan が分散計算へと変わるまでを解説します。RDD の特性、ステージ生成、シャッフルシステム、BlockManager、そして Adaptive Query Execution について深く掘り下げます。
05
Spark Connect と拡張性アーキテクチャ
gRPC/Protobuf によるクライアント・サーバー分離の仕組みと、SparkSessionExtensions・プラグイン可能なクラスターマネージャー・ShuffleManager・Data Source API V2 といった拡張パターンの解説。