1

私はSparkを初めて使っていて、Pythonを使用してSQLを起動する簡単なスクリプトを書いています。私の問題は、実行の開始フェーズでは完全に正しかったが、徐々に減速し、最後のフェーズの最後にアプリケーション全体がハングするということです。最後の点でスパークスタンドアロンアプリケーションがハングする

16/03/29 09:05:50 INFO TaskSetManager: Finished task 96.0 in stage 416.0 (TID 19992) in 41924 ms on 10.9.0.7 (104/200) 
16/03/29 09:05:50 INFO TaskSetManager: Finished task 108.0 in stage 416.0 (TID 20004) in 24608 ms on 10.9.0.10 (105/200) 
16/03/29 09:05:50 INFO TaskSetManager: Finished task 105.0 in stage 416.0 (TID 20001) in 24610 ms on 10.9.0.10 (106/200) 
16/03/29 09:05:55 INFO TaskSetManager: Starting task 116.0 in stage 416.0 (TID 20012, 10.9.0.10, partition 116,NODE_LOCAL, 2240 bytes) 
16/03/29 09:06:31 INFO TaskSetManager: Finished task 99.0 in stage 416.0 (TID 19995) in 78435 ms on 10.9.0.7 (110/200) 
16/03/29 09:06:40 INFO TaskSetManager: Starting task 119.0 in stage 416.0 (TID 20015, 10.9.0.10, partition 119,NODE_LOCAL, 2240 bytes) 
16/03/29 09:07:12 INFO TaskSetManager: Starting task 122.0 in stage 416.0 (TID 20018, 10.9.0.7, partition 122,NODE_LOCAL, 2240 bytes) 
16/03/29 09:07:16 INFO TaskSetManager: Starting task 123.0 in stage 416.0 (TID 20019, 10.9.0.7, partition 123,NODE_LOCAL, 2240 bytes) 
16/03/29 09:07:28 INFO TaskSetManager: Finished task 111.0 in stage 416.0 (TID 20007) in 110198 ms on 10.9.0.7 (114/200) 
16/03/29 09:07:52 INFO TaskSetManager: Starting task 124.0 in stage 416.0 (TID 20020, 10.9.0.10, partition 124,NODE_LOCAL, 2240 bytes) 
16/03/29 09:08:08 INFO TaskSetManager: Finished task 110.0 in stage 416.0 (TID 20006) in 150023 ms on 10.9.0.7 (115/200) 
16/03/29 09:08:12 INFO TaskSetManager: Finished task 113.0 in stage 416.0 (TID 20009) in 154120 ms on 10.9.0.7 (116/200) 
16/03/29 09:08:16 INFO TaskSetManager: Finished task 116.0 in stage 416.0 (TID 20012) in 145691 ms on 10.9.0.10 (117/200) 

アプリケーション全体が絞首刑にされていることを後 - ここで私は、端末上で以下の持っている

hivectx.registerDataFrameAsTable(aggregatedDataV1,"aggregatedDataV1") 
q1 = "SELECT *, (Total_Sale/Sale_Weeks) as Average_Sale_Per_SaleWeek, (Total_Weeks/Sale_Weeks) as Velocity FROM aggregatedDataV1" 
aggregatedData = hivectx.sql(q1) 
aggregatedData.show(100) 

アプリケーションがhanged-取得するコードスニペットです。私は3ノードクラスタを使用しています

export SPARK_PUBLIC_DNS="azuremaster.westus.cloudapp.azure.com" 
export SPARK_EXECUTOR_INSTANCES=1 
export SPARK_EXECUTOR_CORES=2 
export SPARK_EXECUTOR_MEMORY=3G 
export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=1" 
export SPARK_WORKER_PORT="8888" 
export PYSPARK_PYTHON=/usr/bin/python3 
export PYSPARK_DRIVER_PYTHON=python3 
export SPARK_HIVE=true 

:私は次のように構成された私のspark-env.shファイルを持っています。一マスター2コアと4 GBのメモリと他の二つの労働4コアおよび7 GBのメモリ

私はこれまでのところ、以下のなかっ試してみました -

  • 資源の量が異なる/減少執行を増やすエグゼキュータ・コア
  • の一切を増やします。

は私が持っている -

  1. スパーク-1.6.0
  2. のJava 7
  3. スカラ座2.10.4
  4. ビルド済みのHadoop 2.3
  5. ビルド済みハイブ

アプリケーションを2時間実行した後は、エラーをg。私は設定を推測している

The terminal window

をチューニングする必要がありますが、これは1見当がつかない。私は、誰かが何が起こっているのかを知っていて、助けの情報を示唆してくれたら、感謝しています。

ありがとうございます。

+0

sparkのUIから、このステージのDAG視覚化の画像を投稿できますか? –

+0

@Abhishek Anand問題を編集しました –

答えて

0

メモリ不足エラーは、ドライバメモリをバンプする必要がある可能性があることを示しています。デフォルトでは2GBです。私は同様の問題にぶつかり、spark-submitフラグを使ってカスタム設定を渡します。

これを試してみてください:

spark-submit --driver-memory = 4g app.py

をこれが機能しない場合。実行中にどのくらいのメモリが使用されているかを確認するには、スパークWebのUIまたはgangliaを調べる必要があります。 Gangliaでは、使用されているメモリ量と、そのメモリを増やす必要があるかどうかを確認できます。

関連する問題