Обнаружен Executor без экземпляра H2O, убивающий облако

Я запускаю 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)

person maogautam    schedule 08.07.2016    source источник


Ответы (2)


После внимательного прочтения проблемы, размещенной на github https://github.com/h2oai/sparkling-water/issues/32. Я пробовал пару вариантов, вот что я пробовал
Добавлено
--conf "spark.scheduler.minRegisteredResourcesRatio=1" "spark.ext.h2o.topology.change.listener.enabled=false" "spark.locality.wait=3000" "spark.ext.h2o.network.mask=10.196.64.0/24"

Changed the :

Executors from 10 to 3,6 9
executor-memory from 4 to 12 and 12 to 24gb
driver-memory from 4 to 12 and 12 to 24gb

Вот что я узнал: GLM — это задание с интенсивным использованием памяти, поэтому мы должны предоставить достаточно памяти для выполнения задания.

person maogautam    schedule 15.07.2016

Я буду устранять эту проблему с помощью оболочки газированной воды и выполнения одной строки за раз.

  • Запустить оболочку
  • Запустить Н2О
  • Следить за состоянием кластера

Затем

  1. Прочитать входные данные и кэшировать их
  2. Прочтите журналы Yarn, чтобы узнать, почему мои задачи уничтожаются, много раз вытеснение Yarn убивает исполнителей.
  3. Увеличение времени ожидания Spark для запуска процесса H2O
  4. Уменьшение количества исполнителей до 3/увеличение ядер до 3/увеличение памяти исполнителя до 6 ГБ
  5. Отслеживайте пользовательский интерфейс Spark и пользовательский интерфейс H2O Flow, чтобы увидеть, что происходит с памятью на каждом этапе.

Как правило, размер памяти кластера H2O должен быть в 5 раз больше размера входных данных. С каждой итерацией вы пересекаете этот предел? 2 гб это очень мало. Мы обрабатываем огромные объемы каждый день, используя газированную воду и Spark.

есть несколько предложений на сайте H2o

https://github.com/h2oai/sparkling-water/blob/master/doc/configuration/internal_backend_tuning.rst

person user2230605    schedule 09.07.2016
comment
Для моего случая я понял проблему и решение. Ваш механизм устранения неполадок также помог выяснить, что происходит. - person maogautam; 15.07.2016