Запуск задания Spark с использованием библиотеки Paramiko - PullRequest
0 голосов
/ 11 июля 2019

Я работаю над конвейером, который требует, чтобы я запускал параллельные задания.Я построил планировщик в Python, который заботится о выполнении различных заданий (куст, оболочка, сохраненный процесс).Я использую библиотеку Paramiko для удаленного запуска всех команд оболочки в кластере.Помимо spark-submit, каждая команда оболочки выполняется успешно.Команда spark-submit работает вечно.Когда я запускаю ту же задачу spark-submit вручную (подключаюсь к кластеру через putty и запускаю), она работает нормально.

Я также пытался обернуть spark-submit в сценарий оболочки и запустить сценарий оболочки с помощью paramiko, но,результат тот же.

import paramiko

ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("host_name",port,username="username",password="password")

start_time=datetime.datetime.now()

print("START TIME: {}".format(start_time))

print("executing spark command")

stdin,stdout,stderr=ssh.exec_command("spark-submit some_script.py")

if stdout.channel.recv_exit_status() == 0:
    print("SUCCESS")
else:
    print("FAILED")

end_time=datetime.datetime.now()    

print("START TIME: {}, END TIME: {}".format(start_time,end_time))

ssh.close()  

Примечание. У нас нет доступа ни к какому планировщику, например Cron, для планирования этого, а также spark-submit зависит от выполнения другого скрипта улья.Следовательно, я построил планировщик, чтобы позаботиться обо всем этом, и это успешно.

Журналы Paramiko:

DEB [20190712-16: 53: 30.819] thr = 1 paramiko.transport: пользователь работает нормально INF [20190712-16: 53: 32.703] thr = 1 paramiko.transport: Аутентификация (клавиатурно-интерактивная) прошла успешно!DEB [20190712-16: 53: 32.704] thr = 2 paramiko.transport: [chan 0] Макс. Пакет в: 32768 байт DEB [20190712-16: 53: 32.934] thr = 1 paramiko.transport: [chan 0] Макс. Пакетout: 32768 байт DEB [20190712-16: 53: 32.935] thr = 1 paramiko.transport: канал Secsh 0 открыт.DEB [20190712-16: 53: 33.167] thr = 1 paramiko.transport: [chan 0] Канал Sesch 0 запрос в порядке

Журналы Paramiko для простой команды LS:

DEB [20190712-20: 30: 51.770] thr = 1 paramiko.transport: userauth в порядке INF INF [20190712-20: 30: 53.329] thr = 1 paramiko.transport: Аутентификация (клавиатурно-интерактивная) прошла успешно!DEB [20190712-20: 30: 53.330] thr = 2 paramiko.transport: [chan 0] Макс. Пакет в: 32768 байт DEB [20190712-20: 30: 53.561] thr = 1 paramiko.transport: [chan 0] Макс. Пакетout: 32768 байт DEB [20190712-20: 30: 53.561] thr = 1 paramiko.transport: канал Secsh 0 открыт.DEB [20190712-20: 30: 53.795] thr = 1 paramiko.transport: [chan 0] Sesch канал 0 запрос в порядке DEB [20190712-20: 30: 53.797] thr = 1 paramiko.transport: [chan 0] EOF получено (0) DEB [20190712-20: 30: 53.798] thr = 1 paramiko.transport: [chan 0] EOF отправлено (0) DEB [20190712-20: 30: 53.798] thr = 1 paramiko.transport: EOF в транспортном потоке

Код ОТЛАДКИ O / P:

  • подключение к удаленному серверу
  • подключение к серверу успешно
  • ВРЕМЯ НАЧАЛА: 2019-07-12 16: 53: 32.704046
  • выполнение команды зажигания

Это очень странная проблема.Любая помощь будет оценена!

...