我使用slurm管理的集群来运行一些yarn/hadoop基准测试。为此,我在slurm分配的节点上启动hadoop服务器,然后在这些节点上运行基准测试。我意识到这不是运行生产hadoop集群的预期方式,但是必须这样做。
为此,我首先编写了一个使用srun-eg运行的脚本 srun -N 4 setup.sh
. 此脚本写入配置文件并启动分配节点上的服务器,其中编号最低的计算机充当主服务器。这一切工作,我能够运行应用程序。
但是,由于我想启动一次服务器,然后在它们上启动多个应用程序,而不需要重新启动/编码一开始我想使用的所有内容 salloc
相反。我原以为这是一个简单的跑步案例 salloc -N 4
然后跑步 srun setup.sh
. 不幸的是,这不起作用,因为不同的服务器无法相互通信。有谁能向我解释一下使用 srun
以及使用 salloc
那么 srun
?
非常感谢
丹尼尔
1条答案
按热度按时间dfty9e191#
从slurm用户邮件列表:
sbatch和salloc为作业分配资源,而srun跨这些资源启动并行任务。在作业分配中调用时,srun将跨部分或所有分配的资源启动并行任务。在这种情况下,srun默认继承它运行的sbatch或salloc的相关选项。然后,您可以(通常)提供srun不同的选项,这些选项将覆盖它默认接收的内容。作业中每次调用srun都称为作业步骤。
srun也可以在作业分配之外调用。在这种情况下,srun请求资源,并在授予这些资源时,作为单个作业和作业步骤跨这些资源启动任务。