Профилирование Apache Hive CLI
Эта ссылка Profling Hive CLI содержит инструкцию о том, как профилировать Hive CLI с помощью управления полетом Java. И шаги
Создайте каталог для сохранения результатов профилировщика:
mkdir $HOME/profiles
Создайте псевдоним, чтобы было легче повторять:
alias debug='HADOOP_CLIENT_OPTS="-XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true,dumponexitpath=$HOME/profiles/"'
Выполните некоторую команду клиента hadoop в профиле. Например, для профилирования запуска Hive CLI (чтобы с помощью -e 'exit;') также выводился TRACE:
debug hive --hiveconf hive.root.logger=TRACE,console -e 'exit;' 2&>&1 | tee $HOME/profiles/hive_trace.out
Архивировать и собирать каталог, использованный в шаге 1
tar 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, указанный там?