Непрерывное сообщение "Ошибка ввода-вывода при отправке пакетных байтов UDP: java.net.ConnectException: соединение отклонено" в RSparkling на CDH-5.10.2

Я пытаюсь выполнить этот пример RSparkling на автономном кластере CDH-5.10.2. Моя среда это:

  • Spark 1.6.0;
  • спарклир 0,6,2;
  • H2O 3.10.5.2;
  • rsparkling 0.2.1.

Я использую кастрюлю Sparkling Water JAR, которая в основном 1.6.12 с этим PR:

options(rsparkling.sparklingwater.location = "/opt/h2o/sparkling-water-1.6.13-SNAPSHOT/assembly/build/libs/sparkling-water-assembly_2.10-1.6.13-SNAPSHOT-all.jar")

После успешного подключения:

config <- spark_config()
config$spark.dynamicAllocation.enabled <- "false"
config$spark.driver.memory <- "6g"
config$spark.executor.memory <- "6g"
config$spark.executor.heartbeatInterval <- "20s"

sc <- spark_connect(master = "yarn-client", config = config)

Я создаю контекст H2O:

h2o_context(sc)

Создание контекста H2O занимает несколько минут (это первая странная вещь).

После создания приложение перестает отвечать на запросы в течение еще нескольких минут (даже основной интерфейс Spark становится недоступным). В настоящее время журналы H2O не печатаются.

После этого появляются журналы H2O, но они содержат в основном следующие сообщения:

Got IO error when sending batch UDP bytes: java.net.ConnectException: Connection refused

и редко эти между:

WARN: Unblock allocations; cache below desired, but also OOM: OOM, (K/V:Zero   + POJO:661.8 MB + FREE:306.7 MB == MEM_MAX:968.5 MB), desiredKV=121.1 MB OOM!

Затем следующий код, не связанный с H2O, выполняется быстро:

flights_tbl <- copy_to(sc, nycflights13::flights, "flights")
airports_tbl <- copy_to(sc, nycflights13::airports, "airports")
airlines_tbl <- copy_to(sc, nycflights13::airlines, "airlines")
model_tbl <- flights_tbl %>%
  filter(!is.na(arr_delay) & !is.na(dep_delay) & !is.na(distance)) %>%
  filter(dep_delay > 15 & dep_delay < 240) %>%
  filter(arr_delay > -60 & arr_delay < 360) %>%
  left_join(airlines_tbl, by = c("carrier" = "carrier")) %>%
  mutate(gain = dep_delay - arr_delay) %>%
  select(origin, dest, carrier, airline = name, distance, dep_delay, arr_delay, gain)

Но когда H2O должен снова войти в игру:

df_hex <- as_h2o_frame(sc,model_tbl,name="model_hex",FALSE)

приложение снова зависает (на данный момент оно зависает минут двадцать или около того).

Я пытался перезапустить этот код несколько раз и преуспел один раз, но обычно он просто зависает. Как решить эту проблему?

Я проверил ЦП, ОЗУ и использование диска, все это вроде бы нормально. Также нет явных проблем с сетью.

Обновление 1. Может быть ConnectException это просто следствие K/V:Zero + POJO:661.8 MB + FREE:306.7 MB == MEM_MAX:968.5 MB, Поэтому я постараюсь выяснить, как увеличить максимальную память H2O (и почему она в первую очередь ниже 1 ГБ).

1 ответ

Решение

Основной причиной было недостаточное выделение памяти для sparklyr1 ГБ памяти по умолчанию было недостаточно для клиента H2O, который был выполнен в той же JVM. Эти строки кода спасли день:

config$`sparklyr.shell.driver-memory` <- "6g"
config$`sparklyr.shell.executor-memory` <- "6g"
Другие вопросы по тегам