Выполнение команд в интерфейсе командной строки ZooKeeper с использованием Python

Пробую API-интерфейсы Cloudera Manager с помощью Python в AWS. Я пытался выполнить некоторые команды в интерфейсе командной строки Zookeeper после выполнения сценария «zkCli.sh». Я попытался использовать приведенную ниже команду, используя подпроцесс, и я могу войти в интерфейс zookeeper.

subprocess.call('ssh -o StrictHostKeyChecking=no -t -t -i /home/ec2-user/key.pem [email protected] "sudo /opt/cloudera/parcels/CDH/lib /zookeeper/bin/zkCli.sh", shell=True)

Может ли кто-нибудь помочь мне выполнить другие команды в интерфейсе zookeeper (скажем, «ls /»), используя тот же подпроцесс.

Существуют ли какие-либо другие методы для достижения вышеуказанного случая в Python?


comment
это обязательно должен быть питон?   -  person Michelle Tan    schedule 15.03.2017
comment
@MichelleTan Я пытался использовать API cloudera manager в python. Если других вариантов в питоне нет, готов попробовать любые другие варианты. Все намерение состоит в том, чтобы автоматизировать выполнение команд в zookeeper cli.   -  person Hajas    schedule 16.03.2017


Ответы (1)


Не уверен насчет API Cloudera. Возможно, вы можете использовать Python для выполнения скрипта. Вы пробовали Хередок? https://en.wikipedia.org/wiki/Here_document Вы можете запустить его на терминале или поместите в сценарий оболочки, чтобы выполнить его автоматически. Это будет примерно так:

bin/zkCli.sh -server localhost:2181 << END create /zookeeper/Testing "Testdata" quit END

или даже вывод в файл журнала

bin/zkCli.sh -server localhost:2181 >> zkAutomation.log << END create /zookeeper/Testing "Testdata" quit END

person Michelle Tan    schedule 16.03.2017
comment
Спасибо @Michelle Tan за ответ. Я пробовал это и могу выполнять свои команды в интерфейсе зоопарка. Я создал сценарий оболочки и выполнил этот сценарий из Python, и благодаря этому я могу автоматизировать свою работу с помощью того же сценария Python.. :) - person Hajas; 17.03.2017