मेरा क्लस्टर: 1 मास्टर, 11 दास, प्रत्येक नोड में 6 जीबी मेमोरी है।
मेरी सेटिंग्स:
spark.executor.memory=4g, Dspark.akka.frameSize=512
यहाँ समस्या है:
सबसे पहले , मैंने एचडीएफएस से आरडीडी के लिए कुछ डेटा (2.19 जीबी) पढ़ा:
val imageBundleRDD = sc.newAPIHadoopFile(...)
दूसरा , इस RDD पर कुछ करें:
val res = imageBundleRDD.map(data => {
val desPoints = threeDReconstruction(data._2, bg)
(data._1, desPoints)
})
अंतिम , एचडीएफएस के लिए आउटपुट:
res.saveAsNewAPIHadoopFile(...)
जब मैं अपना कार्यक्रम चलाता हूं तो यह पता चलता है:
.....
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:24 as TID 33 on executor 9: Salve7.Hadoop (NODE_LOCAL)
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Serialized task 1.0:24 as 30618515 bytes in 210 ms
14/01/15 21:42:27 INFO cluster.ClusterTaskSetManager: Starting task 1.0:36 as TID 34 on executor 2: Salve11.Hadoop (NODE_LOCAL)
14/01/15 21:42:28 INFO cluster.ClusterTaskSetManager: Serialized task 1.0:36 as 30618515 bytes in 449 ms
14/01/15 21:42:28 INFO cluster.ClusterTaskSetManager: Starting task 1.0:32 as TID 35 on executor 7: Salve4.Hadoop (NODE_LOCAL)
Uncaught error from thread [spark-akka.actor.default-dispatcher-3] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[spark]
java.lang.OutOfMemoryError: Java heap space
बहुत सारे कार्य हैं?
पुनश्च : हर चीज ठीक है जब इनपुट डेटा लगभग 225 एमबी है।
इस समस्या का समाधान किस प्रकार से किया जा सकता है?