注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

Velox による Spark の高速化

Spark の高速化は、低レベルのハードウェア最適化を活用して Spark ジョブのパフォーマンスを向上させる手法です。ネイティブ高速化は、プラットフォーム固有の機能を使用することで、大規模なデータワークロードの処理にかかる時間を大幅に短縮することを目指しています。これにより、ジョブの実行が速くなり、リソース使用効率が向上する可能性があります。

Velox ↗ は、再利用可能な高性能の低レベルデータ処理ライブラリーで、高性能なデータ処理システムを構築するためのプリミティブを提供します。より高レベルのデータ処理システムを構築するための基盤として使用するように設計されており、Foundry では Spark ジョブの高速化に使用されています。

Foundry のネイティブ高速化について詳しく見る。

クイックスタート

Spark の高速化は、既存のどの Spark パイプラインでも使用できます。ロジックを変更する必要はありません。

Python トランスフォームのパイプラインでネイティブ高速化を使用するには、次の手順を完了する必要があります。

  1. Python リポジトリーをアップグレードして、最新バージョンにします。
  2. オフヒープメモリープロファイルを設定します。
  3. 次のコードスニペットに示すように、VELOX バックエンドを有効にします。
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 from transforms.api import configure, ComputeBackend, Input, Output, transform_df @configure( ["EXECUTOR_MEMORY_MEDIUM", "EXECUTOR_MEMORY_OFFHEAP_FRACTION_HIGH"], backend=ComputeBackend.VELOX) @transform_df( Output('/Project/folder/output'), source_df=Input('/Project/folder/input'), ) def compute(source_df): ...

高速化した Spark のメモリー設定

ネイティブ高速化を適用した Spark プロジェクトを最適化するには、まずオフヒープメモリーに EXECUTOR_MEMORY_OFFHEAP_FRACTION_HIGH 設定を使用します。オフヒープメモリーの割合を指定するプロファイルには、上記のように EXECUTOR_MEMORY_X プロファイルが必要です。このメモリーは、一部のタスクを JVM の外部で処理する Velox によって使用されます。パフォーマンスを確認し、必要に応じてオフヒープメモリーを増減します。