Неудачный запуск 'Inspect Network Performance': Failed running performance inspector on cluster
На новом кластере проваливался тест Inspect Network Performance. Причина в установленном по умолчанию python3 на CentOS7.
Проблема
В результате запуска на кластере проверки “Inspect Network Performance” мы можем наблюдать картину:
В логах /var/log/cloudera-scm-agent/cloudera-scm-agent.log
:
Thread-17 supervisor WARNING Failed while getting process info. Retrying. (<Fault
10: 'BAD_NAME: 3050-host-perf-inspector'>)
В /var/run/cloudera-scm-agent/process/3050-host-perf-inspector/logs
присутствует пустой файл stdout.log
, а в файле stderr.log
видна ошибка “SyntaxError: invalid syntax”:
[21/Oct/2020 14:56:56 +0000] 105531 MainThread redactor INFO Started launcher: /opt/cloudera/cm-agent/service/perf/host_perf_diag.py input.json logs/result.json
[21/Oct/2020 14:56:56 +0000] 105531 MainThread redactor ERROR Redaction rules file doesn't exist, not redacting logs. file: redaction-rules.json, directory: /run/cloudera-scm-agent/process/3050-host-perf-inspector
[21/Oct/2020 14:56:56 +0000] 105531 MainThread redactor INFO Re-exec watcher: /opt/cloudera/cm-agent/bin/cm proc_watcher 105541
File "/opt/cloudera/cm-agent/service/perf/host_perf_diag.py", line 156
except RuntimeError, rte:
^
SyntaxError: invalid syntax
Решение
На наших машинах с CentOS7 на борту по умолчанию запускается ‘python3’. Поэтому для того, чтобы в кластере заработал “network-inspector” необходимо поменять шебанг у файла /opt/cloudera/cm-agent/service/perf/host_perf_diag.py
. Добавить цифру ‘2’ к ‘#!/usr/bin/python’, чтобы было так:
#!/usr/bin/python2
После применения решения можем наблюдать успешное выполнения теста: