Я запускаю Tweedie GLM, используя газированную воду для данных разного размера, например 20 МБ, 400 МБ, 2 ГБ, 25 ГБ. Код отлично работает для 10-й итерации выборки. Но я должен проверить сценарий большой выборки.
Sampling iteration is 500
В этом случае код хорошо работает для данных объемом 20 и 400 МБ. Но он начинает вызывать проблему, когда данные больше 2 ГБ.
После поиска я нашел одно решение, отключающее прослушиватель изменений, но оно не работало для больших данных.--conf "spark.scheduler.minRegisteredResourcesRatio=1" "spark.ext.h2o.topology.change.listener.enabled=false"
Вот моя конфигурация отправки искры
spark-submit \
--packages ai.h2o:sparkling-water-core_2.10:1.6.1, log4j:log4j:1.2.17\
--driver-memory 8g \
--executor-memory 10g \
--num-executors 10\
--executor-cores 5 \
--class TweedieGLM target/SparklingWaterGLM.jar \
$1\
$2\
--conf "spark.scheduler.minRegisteredResourcesRatio=1" "spark.ext.h2o.topology.change.listener.enabled=false"
Вот что я получил как ошибка
16/07/08 20:39:55 ERROR YarnScheduler: Lost executor 2 on cfclbv0152.us2.oraclecloud.com: Executor heartbeat timed out after 175455 ms
16/07/08 20:40:00 ERROR YarnScheduler: Lost executor 2 on cfclbv0152.us2.oraclecloud.com: remote Rpc client disassociated
16/07/08 20:40:00 ERROR LiveListenerBus: Listener anon1 threw an exception
java.lang.IllegalArgumentException: Executor without H2O instance discovered, killing the cloud!
at org.apache.spark.h2o.H2OContext$$anon$1.onExecutorAdded(H2OContext.scala:203)
at org.apache.spark.scheduler.SparkListenerBus$class.onPostEvent(SparkListenerBus.scala:58)
at org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31)
at org.apache.spark.scheduler.LiveListenerBus.onPostEvent(LiveListenerBus.scala:31)
at org.apache.spark.util.ListenerBus$class.postToAll(ListenerBus.scala:56)
at org.apache.spark.util.AsynchronousListenerBus.postToAll(AsynchronousListenerBus.scala:37)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1$$anonfun$run$1.apply$mcV$sp(AsynchronousListenerBus.scala:79)
at org.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1136)
at org.apache.spark.util.AsynchronousListenerBus$$anon$1.run(AsynchronousListenerBus.scala:63)