В облаке Datafusion
Я использую преобразование объединения для объединения двух таблиц.
Одна из них представляет собой большую таблицу с примерно 87 млн. Объединений, а другая представляет собой таблицу меньшего размера, содержащую всего ~ 250 записей. Я использую 200 разделов в столяре.
Это вызывает следующую ошибку:
org. apache .spark.SparkException: Задание прервано из-за сбоя этапа: Задача 50 в этап 7.0 завершился неудачно 4 раза, последний сбой: потерянная задача 50.3 на этапе 7.0 (TID xxx, cluster_workerx. c .project.internal, исполнитель 6): ExecutorLostFailure (исполнитель 6 завершен из-за выполнения одной из запущенных задач) Причина: исполнитель Тайм-аут сердцебиения после 133355 мс java .util.concurrent.ExecutionException: java .lang.RuntimeException: org. apache .spark.SparkException: Приложение application_xxxxx завершено с ошибочным состоянием
Вкл более пристальный взгляд на искровой пользовательский интерфейс: 200 задач для соединения, почти 80% из 87m записей go в одну задачу O / P, которая завершается неудачно с ошибкой сердцебиения, в то время как у успешных задач очень мало записей O / P ~ < 10k записей
Похоже, что спарк выполняет случайное перемешивание, ха sh Соединение, есть ли способ в datafusion / cdap, где мы можем форсировать широковещательное соединение, так как один из мой стол очень маленький? Или я могу внести изменения в конфигурацию кластера, чтобы это объединение работало?
Какую настройку производительности я могу выполнить в конвейере объединения данных. Я не нашел ссылки на конфигурацию, настройку в документации Datafusion