126 Gb テーブルを HAWQ (PostgreSQL、この場合は 8.2) から Spark にプルしようとしていますが、機能していません。小さいテーブルを問題なくプルできます。これについては、エラーが発生し続けます:
org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 0.0 failed 1 times, most recent failure: Lost task 0.0 in stage 0.0 (TID 0, localhost): ExecutorLostFailure (executor driver lost)
Driver stacktrace:
at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1273)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1264)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1263)
at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1263)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:730)
at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:730)
at scala.Option.foreach(Option.scala:236)
at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:730)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1457)
at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1418)
at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48)
私のクラスターの仕様は次のとおりです: 64 コア、512 Gb の RAM、2 ノード
これは 2 ノードの Spark スタンドアロン クラスターです (信頼してください。もっと多くのノードが必要ですが、それがすべてです)。したがって、1 つのノードを純粋なスレーブとして使用し、もう 1 つのノードにはマスターと他のスレーブの両方を収容します。
spark-submit ジョブでメモリ割り当ての多くの構成を試しました。ここにいくつかをリストしますが、どれも機能しませんでした:
// CONFIG_5: FAIL (96 Gb driver 144 Gb executor)
--driver-memory 96g --executor-memory 6g --num-executors 24 --executor-cores 24
// CONFIG_4: FAIL (48 Gb driver 196 Gb executor)
--driver-memory 48g --executor-memory 8g --num-executors 24 --executor-cores 24
//CONFIG_3: FAIL (120 Gb driver 128 Gb executor)
--driver-memory 120g --executor-memory 4g --num-executors 32 --executor-cores 32
// CONFIG_2: FAIL (156 driver 96 executor)
--driver-memory 156g --executor-memory 4g --num-executors 24 --executor-cores 24
// CONFIG_1: FAIL (224 Gb driver 48 Gb executor)
--driver-memory 224g --executor-memory 1g --num-executors 1 --executor-cores 48
エラーは毎回同じです -- ExecutorLostFailure (executor driver lost)