spark-submitコマンドを使用して、32コア、64 GBサーバでpysparkアプリケーションを実行しています。アプリケーションでjava.lang.OutOfMemoryErrorの取得:pysparkアプリケーションの送信時
ステップ:=負荷
DF1 CSVファイルから500百万のデータセット(FIELD1、FIELD2、FIELD3、FIELD4)。
df2 =(spark mongoアダプターを使用して)mongodbから500万エントリをロードします(field1、field2、field3)。
左(:Javaヒープスペースステップスロー例外java.lang.OutOfMemoryErrorをを):オペレーションに参加
df_output = df1.join(DF2、 [ "フィールド1"、 "フィールド2"、 "FIELD3"]、 "left_outer")。select( "*")
追加モードでdf_outputを使用してmongoコレクションを更新しています。/spark-env.sh CONFに
構成:
- SPARK_EXECUTOR_INSTANCES = 10
- SPARK_EXECUTOR_CORES = 3
- SPARK_EXECUTOR_MEMORY = 5ギガバイト
- SPARK_WORKER_CORES = 30
- SPARK_WORKER_MEMORY = 50ギガバイト
があり、さらにデフォルト値に設定されているパラメータがあります。
コマンドでマスターと1人のワーカーを設定します。最適なこのデータセットのパフォーマンスに加えて、どのように我々べきためのチューニング設定パラメータのための最善のアプローチがどうあるべきか
sbin/start-master.sh
/sbin/start-slave.sh master_ip
コマンドを使用してスクリプトを実行している
nohup bin/spark-submit --packages org.mongodb.spark:mongo-spark-connector_2.11:2.0.0 --master master_ip ../test_scripts/test1.py > /logs/logs.out &
任意のデータセットに対して上記のパラメータを設定しますか?