Что означает время этапа зажигания и что означает задание excutor gc time? - PullRequest
0 голосов
/ 21 марта 2019

У меня здесь три вопроса.

  1. Во-первых, моя искровая работа содержит только одну стадию, а время работы / время этапа показано на рисунке ниже.Насколько я понимаю, время работы - это время стены, и здесь время этапа составляет почти половину времени работы, что оно означает.

Время работы искры SparkJobTime Время срабатывания искры SparkStageTime

Второй вопрос заключается в том, что время GC слишком велико по сравнению с временем задания, что означает время gc.Я имею в виду, включен ли несовершеннолетний / полный gc, включен ли stop-the-world?SparkExecutors

Замечания
какую дозу выполнить задание: прочитать hbase -> выполнить небольшой процесс -> сохранить как паркет на hdfs
размер данных: ~ 40T
исполнителей num: 180
кучи исполнителей mem: 16G
накладные расходы исполнителя: 4G
executor исполнителя jvm: oracle 64bit
arvutor исполнителя jvm args: -Xms16g -Xmx16g -XX:+UseG1GC -XX:G1HeapRegionSize=32m -XX:+UseCompressedOops

gc исполнителя настолько ненормальный, и я исследую его, информация, которую я нашел ниже.Я хочу знать, как оптимизировать аргументы JVM, кажется, что полный gc займет много времени (более 20 секунд).

Использование кучи памяти HeapMemUsage G1 Eden Space G1EdenSpace G1 Survivor Space G1SurvivorSpace G1 Old Space G1OldSpace Статистика GC
6 минут на G1 Young Generation (1034 коллекции)
22 минуты на G1 Old Generation (46 коллекций)

И давайте посмотрим, как выглядит куча (я сбросил одну кучу)
Извините, что здесь нет изображения, я не сохранил его вчера, когда анализировал его с помощью Eclipse Memory Analysis, но мы могли убедиться, что это три больших объекта Hash Map.который потребляет почти 10G памяти (эти три парня являются статическими переменными и не могут быть свободными, и это не ошибка! это действительно нужно эти три большие хэш-карты.)

Спасибо.

...