我正在处理要求我并行运行Spark作业的管道。我在python中建立了一个调度程序,负责执行不同作业(配置单元,外壳程序,storedproc)。我正在使用Paramiko库在群集上远程运行所有shell命令。除了spark-submit之外,每个shell命令都成功运行。 spark-submit命令将永远运行。当我手动运行同一火花提交作业(通过腻子连接到集群并运行)时,它运行良好。
我还尝试将spark-submit包装在shell脚本中,并使用paramiko运行shell脚本,但是结果是相同的。
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:userauth正常 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]最大数据包输出: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请求正常
简单的LS命令的Paraamiko日志:
DEB [20190712-20:30:51.770] thr = 1 paramiko.transport:userauth正常 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]最大数据包输出: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
- 执行spark命令
这是一个非常奇怪的问题。任何帮助将不胜感激!