Ограничение в нескольких файлах
- / usr / bin / hdp-select
- / etc / hadoop / conf / topology_script.py
Приложение 2to3 можно использовать для преобразования файла Python для поддержки Python3.
2to3 -w /usr/bin/hdp-select
2to3 -w /etc/hadoop/conf/topology_script.py
Немного измените файл /etc/hadoop/conf/topology_script.py для поддержки как Python2, так и Python3.
Хотя после этих изменений knox не сможет перезапуститься.
После проведения исследования, хотя изменение делает Python-код работоспособным как на Python2, так и на Python.Поведение немного отличается.
Следующая команда будет выполнена во время перезапуска Knox
ambari-python-wrapper /usr/bin/hdp-select packages
Исходный вывод сценария будет выглядеть примерно так:
Packages:
accumulo-client
accumulo-gc
...
После изменения 2to3Выходные данные сценария будут выглядеть примерно так:
Packages:
(' ', 'accumulo-client')
(' ', 'accumulo-gc')
Два вывода определенно различаются.И HDP использует эти stdout в качестве интерфейса.
Эффект можно прибить к следующему коду.Два оператора печати имеют различный вывод.
pkg = "knox-server"
print " ", pkg
print(" ", pkg)
Измените оператор печати на print(" ", pkg)
, исправил эту проблему