Самый простой способ установить время ожидания подключения к свече - PullRequest
0 голосов
/ 25 сентября 2018

Какой самый простой способ установить время ожидания для методов подключения spark, таких как чтение и запись?

До сих пор я пытался добавить «spark.network.timeout» с чем-то действительно низким, например, «2s»,но затем я получил исключение, запрашивающее, чтобы значение "spark.executor.heartbeatInterval" было меньше времени ожидания, поэтому я установил heartbeatInterval в значение "1 с".

Установка времени ожидания:

SparkSession sparkSession = SparkSession.builder().appName("test").master("local[*]").config("spark.network.timeout","2s").config("spark.executor.heartbeatInterval", "1s").getOrCreate();

Чтение данных:

Dataset<Row> dataset =  sparkSession.read().jdbc(url, fromStatement, properties);

Запись данных:

dataset.write().mode(SaveMode.Overwrite).jdbc(destinyUrl, tableName, accessProperties);

Метод чтения занял 11 секунд для загрузки набора данных, а метод записи занял 13 секунд для сохранения набора данных в базе данных., но никакие действия не были остановлены через 2 секунды.

1 Ответ

0 голосов
/ 27 сентября 2018

Когда проблем нет, вы не можете их остановить.'spark.network.timeout' по умолчанию для всех сетевых взаимодействий.Эта конфигурация будет использоваться на месте, если нижеуказанные свойства не настроены.

  spark.core.connection.ack.wait.timeout,
  spark.storage.blockManagerSlaveTimeoutMs,
  spark.shuffle.io.connectionTimeout
  spark.rpc.askTimeout or spark.rpc.lookupTimeout 

, где как spark.executor.heartbeatInterval - Интервал между тактовыми импульсами каждого исполнителя к драйверу.Пульс информирует водителя о том, что исполнитель еще жив, и обновляет его метриками для выполняемых задач.spark.executor.heartbeatInterval должен быть значительно меньше, чем spark.network.timeout (по умолчанию = 10 с)

источник: https://spark.apache.org/docs/latest/configuration.html#networking

...