Как включить поддержку Python3 на HDP 2.6 - PullRequest
0 голосов
/ 18 октября 2018

HDP 2.6 (Платформа данных HortonWorks) не поддерживает Python3.В то время как Python3 (или Anaconda3) высоко ценятся многими специалистами по данным.

Как включить поддержку Python3 на HDP 2.6?

1 Ответ

0 голосов
/ 18 октября 2018

Ограничение в нескольких файлах

  • / 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), исправил эту проблему

...