Профилирование Apache Hive CLI

Эта ссылка Profling Hive CLI содержит инструкцию о том, как профилировать Hive CLI с помощью управления полетом Java. И шаги

  1. Создайте каталог для сохранения результатов профилировщика:mkdir $HOME/profiles

  2. Создайте псевдоним, чтобы было легче повторять:alias debug='HADOOP_CLIENT_OPTS="-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=$HOME/profiles/"'

  3. Выполните некоторую команду клиента hadoop в профиле. Например, для профилирования запуска Hive CLI (чтобы с помощью -e 'exit;') также выводился TRACE:debug hive --hiveconf hive.root.logger=TRACE,console -e 'exit;' 2&>&1 | tee $HOME/profiles/hive_trace.out

  4. Архивировать и собирать каталог, использованный в шаге 1tar czvf profile_data.tgz $HOME/profiles

Мои вопросы

а) После шага 4, как использовать управление полетом Java, чтобы использовать собранные метрики

б) Когда я запускаю куст, используя параметры конфигурации в 2 и 3. Почему куст не отображается в консоли управления полетом java?

c) Есть ли лучший способ для профилирования компонента Hive, например, hive-exec, hive-metastore?

1 ответ

Решение

a) Теперь у вас должен быть номер для файлов *.jfr в $HOME/profile, их можно открывать и анализировать в JMC. Вот ссылка на официальные документы о том, как это сделать: https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr005.html (есть много информации и видео об этом, если вы поиск онлайн)

б) Как запустить Hive, с тем же пользователем, с которым вы запускаете JMC? Можете ли вы увидеть другие JVM в системе? Если вы запускаете jps или jcmd, можете ли вы увидеть процесс Hive, указанный там?

Другие вопросы по тегам