2016-09-13 3 views
2

Spark Standalone上で実行される非常に複雑なアプリケーションがあります。 場合によっては、実行中の状態で無作為に時間をかけてワーカーの1つのタスクがランダムにブロックされます。スタンドアロンクラスタでスパークタスクがランダムにブロックされる

Blocked tasks

追加情報:

  • ログ
  • にエラーがないではありませんが、デバッグにロガーで走ったと私は(私が見たときにタスク関連するすべてのメッセージを見ていませんでした起動しますが、そのためのアクティビティはありません)
  • 私はたった一人の労働者しかいない場合、ジョブは正常に動作しています
  • 同じジョブが適切な時間内に問題が発生しました。
  • タスクの一部が遅れる可能性のある大きなパーティションはありません。
  • スパーク2.0私はRDDからデータセットに移動しましたが、同じ問題があります
  • spark 1.4で私は問題を解決できましたが、スペックをオンにすることで問題を解決できましたが、スパーク2.0ではブロック作業が別のワーカー1.4では1人の作業者だけが作業をブロックしています)、投機が私の問題を解決していません。
  • 私はそれがハードウェアに関連しているとは思わないので、より多くの環境で問題があります。

誰かが似たような経験をしましたか?どのように私は問題を識別することができます上の任意の提案?

ありがとうございます!

その後編集:Spark Indefinite Waiting with "Asked to send map output locations for shuffle"とここに:http://apache-spark-user-list.1001560.n3.nabble.com/Spark-stalling-during-shuffle-maybe-a-memory-issue-td6067.htmlが、両方が作業溶液なしです私は私がここで説明したのと同じ問題に直面していると思います。ログの最後のものは無限に繰り返さ

は次のとおりです。[ディスパッチャ-イベントループ-18] DEBUG org.apache.spark.scheduler.TaskSchedulerImpl - parentName:、名前:TaskSet_2、runningTasks:6

+0

1)実際にブロックするコードを抽出できますか? 2)GCログをチェックしましたか?3)スレッドロック/社内マルチスレッドを使用していますか? –

+0

1)アプリケーションはかなり複雑で、ブロックを引き起こしている実際の部分を見つけることができませんでした。 2)ログに問題はありません。たとえそれがgc/memoryの問題であったとしても、同じ仕事のために同様に振る舞います。今では同じ仕事が数秒でほぼすべて終わりますが、ランダムにブロックされます。 3)他の形態のマルチスレッド/ロック機構は使用されない – BBogdan

答えて

0

問題実行者ごとにただ1つのコアを割り当てることで私のために修正されました。エキスパートにコアが1つ以上ある場合、問題は再び発生します。私はまだ何が起こっているのか理解できませんでしたが、同様の問題を抱えている人にとってはこれを試すことができます。

関連する問題