我正在提交多个Spark作业。一份工作需要一个工人。目前我一次提交了30个作业,5个作业正在运行,25个作业正在等待。但是,此操作会给服务器带来沉重的负载。(有时无法分配作业端口,会发生错误。(
在一次运行5个工件的同时,是否可以减少负载?
当前我的运行代码::
~/spark-submit ~test1.py & ~/spark-submit ~test2.py & ~/spark-submit ~testN.py & ... ~/spark-submit ~test30.py
我相信有和"amp"您正在同时使用所有这些功能。
如果你把"而不是"";它们不会立即执行,而是等待它完成。
~/spark-submit ~test1.py ; ~/spark-submit ~test2.py ; ~/spark-submit ~testN.py ;
~/spark-submit ~test30.py;
您还可以将它们组合并并行执行其中n个,如:
~/spark-submit ~test1.py & ~/spark-submit ~test2.py ; ~/spark-submit ~testN.py &
~/spark-submit ~test30.py;
然而,这不是最好的方法,而是一个快速解决方案。原因是有些工作需要比其他工作更长的时间,完成这些工作需要更多的时间。一种解决方案是编写一个python脚本,指定一个作业池并同时运行其中5个作业。一旦其中一个完成,你就用游泳池里的另一个来代替它。