Я написал искровой работу, которая делает ниже операцийСпарк foreachpartition улучшения связи
- Читает данные из HDFS текстовых файлов.
- Сделайте отдельный() вызов для фильтрации дубликатов.
- ли фазы mapToPair и генерировать pairRDD
- Выполните reducebykey вызов
- сделать агрегация логики для сгруппированных кортежа.
теперь называют Еогеасп на # 5
здесь это
- сделать вызов Кассандры дб
- создать AWS SNS и SQS соединение клиента
- сделать некоторые JSON записи форматирования.
- опубликовать запись в SNS/SQS
когда я запускаю эту работу, он создает три искры этапы
первый этап - это занимает около 45 сек. выполняет отчетливую второго этапа - mapToPair и reducebykey = занимает 1,5 мин
третьей ступени = занимает 19 минут
что я сделал
- Я выключил Кассандру вызов так увидеть DB ударила причину - это принимая меньше времени
- Оскорблять часть я нашел, чтобы создать SNS/SQS соединения Foreach секционирования
его принятие более чем 60% всего рабочего времени
Я создаю соединение SNS/SQS внутри foreachPartition, чтобы улучшить меньше соединений. у нас есть еще лучший способ
Я не могу создать объект подключения на водителя, как это не сериализации
Я не использую числа исполнителя 9, executore сердечник 15, 2g памяти драйвера, Вершитель память 5G
Я использую 16 сердечник 64 гиг память размера кластера 1 мастер 9 раба все же конфигурацию ЭХ искр развертывания 1,6
Вы уверены, что 'создать AWS SNS и SQS клиента соединение ' берет 60% времени работы или 'опубликовать запись в SNS/SQS' это? Между этими двумя есть небольшая разница. В первом случае вам необходимо свести к минимуму количество создания соединения, тогда как во втором случае вам необходимо распределить свои данные (и создать больше экземпляра подключения). Интересно!!!! – code
Если это второй случай, я отправлю ответ с помощью решения. – code