Я работаю над конвейером, который требует, чтобы я запускал параллельные задания.Я построил планировщик в 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
- выполнение команды зажигания
Это очень странная проблема.Любая помощь будет оценена!