通过SSH

时间:2016-09-10 12:48:38

标签: python linux ssh cluster-computing scaling

我最近编写了一个python脚本,有助于废弃网页并将内容存储在名为dump.json的文件中。在我的大学,我使用了大约20台计算机(无root访问权限,只有python虚拟环境!),我必须通过SSH进入每台计算机并运行它们本地和存储。

例如,我有大约100万个网页要废弃信息。我使用的技术是将这100万个集合划分为50,000个网页集,并在我的20台不同的计算机上运行每个这样的集合。像这样:

./ jobs.sh

#!/bin/sh
ssh chervil "./scrapper.py 0 && ./scrapper.py 19" &
ssh cherry "./scrapper.py 1 && ./scrapper.py 20" &
ssh betel "./scrapper.py 2 && ./scrapper.py 21" &
ssh arka "./scrapper.py 3 && ./scrapper.py 22" &
ssh classic "./scrapper.py 4 && ./scrapper.py 23" &
ssh fanpalm  "./scrapper.py 5 && ./scrapper.py 24" &
ssh betel "./scrapper.py 6 && ./scrapper.py 25" &
ssh oak "./scrapper.py 7 && ./scrapper.py 26" &
ssh devdar "./scrapper.py 8 && ./scrapper.py 27" &
ssh palm "./scrapper.py 9 && ./scrapper.py 28" &
ssh tulasi "./scrapper.py 10 && ./scrapper.py 29" &
ssh ashoka "./scrapper.py 11 && ./scrapper.py 30" &
ssh willow "./scrapper.py 12 && ./scrapper.py 31" &
ssh sandal "./scrapper.py 13 && ./scrapper.py 32" &
ssh haldi "./scrapper.py 14 && ./scrapper.py 33" &
ssh scicity "./scrapper.py 15 && ./scrapper.py 34" &
ssh bilva "./scrapper.py 16 && ./scrapper.py 35" &
ssh brahmi "./scrapper.py 17 && ./scrapper.py 36" &
ssh orange "./scrapper.py 18 && ./scrapper.py 37" 

我可以编写一个bash脚本来使这个过程更加系统化但你明白了。我正在做的事情基本上是连接到每台机器并创建分段转储,如dump-1.json,' dump-2.json,.... dump-37.json并使用{{加入转储1}}。正如你所看到的那样,我采用的方法看起来有点笨拙。

问题

现在,我确信有更好的解决方案可以帮助我实现"扩展"或者在多台机器上运行我的脚本,并选择在每个系统上运行微调参数。例如,在我的情况下,最终更系统地合并来自不同系统(或同一用户)的结果。我听说过像Celery这样的选项,但我不确定这是否是最适合这些需求的解决方案?那里最好的选择是什么?

我的需求是,只有我的Linux大学计算机上没有root的SSH访问!

我想抛出我的一些朋友建议的其他几个选项(我不知道)。就像Apache Spark一样,对我来说可能有点太高了。

0 个答案:

没有答案