記事著者の電子メール: [email protected] 住所: 広東省恵州市
▲ この章のプログラム
⚪ Master Spark - シリアル化の実装が改善されました。
⚪ Master Spark - コードを通じて Kryo を使用します。
⚪ マスター Spark - 複数の一時ファイル ディレクトリを構成します。
⚪ Master Spark - 投機的実行メカニズムを有効にします。
⚪ Master Spark - コレクトの使用を避けてください。
⚪ マスター Spark - RDD 操作にはマップの代わりに MapPartitions を使用します。
⚪ マスター Spark - Spark 共有変数。
1. スパークチューニング - パート 1
1. シリアル化の実装の改善
Spark がシリアル化を使用する場所
1. シャッフル中に、オブジェクトを外部一時ファイルに書き込む必要があります。
2. 各パーティションのデータをワーカーに送信する必要がある Spark は、まず RDD をタスク オブジェクトにパッケージ化し、ネットワーク経由でタスクをワーカーに送信します。
3. RDD がメモリ + ハードディスクをサポートしている場合、ハードディスクへのデータの書き込みにはシリアル化も含まれます。
デフォルトは Java シリアル化です。しかし、Java シリアル化には 2 つの問題があります。
1. パフォーマンスが比較的低く、
2. シリアル化されたバイナリ コンテンツの長さも比較的長いため、ネットワーク送信時間が長くなります。
業界は現在、 Java のシリアル化より 10 倍以上高速なkryoとして、より優れた実装を選択しています。また、生成されるコンテンツの長さも短いです。時間は速く、スペースは狭いので、それは当然の選択です。
方法 1:spark-defaults.conf 構成ファイルを変更します。
設定:
スパーク.シリアライザーorg.apache.spark.serializer.KryoSerializer
注: スペースで区切ってください。
方法2:spark-shellまたはspark-submitの起動時に設定します。
--conf スパーク.シリアル