Мы запускаем Spark в автономном режиме с 3 узлами в 240-дюймовом «большом» EC2-окне для объединения трех файлов CSV, которые считываются в DataFrames для JavaRDD в выводить файлы частей CSV на S3 с помощью s3a.Spark Stand Alone - Last Stage saveAsTextFile занимает много времени, используя очень мало ресурсов для записи файлов CSV-файлов
Мы можем видеть из пользовательского интерфейса Spark, первые этапы чтения и слияния, чтобы обеспечить окончательный запуск JavaRDD на 100% CPU, как и ожидалось, но заключительный этап, записываемый в виде файлов CSV с использованием saveAsTextFile at package.scala:179
, «застревает» в течение многих часов 2 из 3 узлов с 2 из 32 задач, занимающих часы (коробка находится на 6% CPU, память 86%, Network IO 15kb/s, Disk IO 0 на весь период).
Мы читаем и записываем несжатый CSV (мы обнаружили, что несжатый был намного быстрее, чем CSV с CSV) с re partition 16 на каждом из трех входных DataFrames и не коушинг записи.
Понравился бы какой-либо намек на то, что мы можем исследовать, почему последний этап занимает так много часов, делая очень мало на 2 из 3 узлов в нашем автономном локальном кластере.
Большое спасибо
--- UPDATE ---
Я пытался писать на локальный диск, а не S3A и симптомы одинаковы - 2 из 32 задач на заключительном этапе saveAsTextFile
«застревает "в течение нескольких часов:
Спасибо. Я пробовал это, но симптомы одинаковы без заметных изменений. – user894199