SGE:作业调度系统安装和使用简要说明
来源:互联网 发布:网络创业项目 编辑:程序博客网 时间:2024/06/07 05:26
主要有三部分:
安装:服务器端搭建,一般服务端只需要搭一次
配置:服务端和节点,后续主要是新增节点才需配置
使用:一般使用者可以忽略前两个,直接看使用说明
安装
一些参考网站
http://linoxide.com/ubuntu-how-to/setup-open-grid-engine-cluster-ubuntu
http://www.yinqisen.cn/blog-212.html
https://informatics.malariagen.net/2011/06/01/gridengine-the-ubuntu-debian-way/
http://m.blog.csdn.net/article/details?id=42707901
server服务端需要一下配置:
apt-get updateadduser gsadmin --uid 500 #pass coolwget http://downloads.sourceforge.net/project/gridscheduler/GE2011.11p1/GE2011.11p1.tar.gztar -zxvf GE2011.11p1.tar.gzmv GE2011.11p1 /home/gsadmin/chown -R gsadmin:gsadmin /home/gsadmin/ ##Setup NFS Server on Master Hostapt-get install nfs-kernel-server ##may be /etc/exports: Permission deniedecho "/home/gsadmin *(rw,sync,no_subtree_check)" >> /etc/exportsexportfs -aservice nfs-kernel-server restart##Setup OpenJDK-8 On Master Nodeapt-get install openjdk-8-jdk##setting jdk echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/" >> ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ echo "export PATH=$PATH:/usr/lib/jvm/java-8-openjdk-amd64/bin" >> ~/.bashrc export PATH=$PATH:/usr/lib/jvm/java-8-openjdk-amd64/bin echo "export SGE_ROOT=/home/gsadmin/GE2011.11p1" >>~/.bashrc export SGE_ROOT=/home/gsadmin/GE2011.11p1/ export PATH=$PATH:~/GE2011.11p1/bin/linux-x64:$SGE_ROOT##serverssh-keygen##if no ssh install openssh-server####Open Grid Scheduler/Grid Engine Installation#Servercd /home/gsadmin/GE2011.11p1/source/clients/gui-installer/templates/./start_gui_installer.sh##OR##delete package and config: sudo apt-get --purge remove gridengine-master##or sudo aptitude purge gridengine-masterapt-get install gridengine-master
配置
服务器端初次配置
#假设主机是 master01; 第一句的两个gsadmin 分别代表是用户和用户组,为了方便起了一样的名字#把用户gsadmin加到组gsadmin里面qconf -au gsadmin gsadmin #把主机加到提交主机里面qconf -as master01 qconf -ahgrp @allhosts # just save the file without modifying it#Add an execution host:把主机加到执行主机里面qconf -aattr hostgroup hostlist master01 @allhosts qconf -aq main.q # just save the file without modifying it#Add the host group to the queue:把主机组加到队列里面qconf -aattr queue hostlist @allhosts main.q # 4 by default for all nodes, 3 specifically for master01, which leaves 1 of the 4 cpus free for the master processqconf -aattr queue slots "4, [master01=3]" main.q
配置host 通过名字来访问结点
增加hostssudo vim /etc/hosts#例如如下 其中 slave01 是主机master,其他是client202.116.161.100 slave01114.113.126.32 coolb-PowerEdge-R730192.168.68.39 hp2192.168.68.40 gcxyb192.168.68.42 hp1结点配置
客户端安装:
apt-get install gridengine-client gridengine-qmon gridengine-exec #gridengine-master会弹出框需要填写一些信息注意填写master为对应的master主机即可,其他可以默认。填写完之后需要重新启动exec#重启服务ps aux |grep sgesudo /etc/init.d/gridengine-exec restart配置:
#加入主机队列 hp1是client,假设为当前配置的机器qconf -ah hp1 cool3-PowerEdge-T130#加入提交队列qconf -as hp1# 把客户端节点加进去到hostlist里面qconf -aattr hostgroup hostlist hp1 @allhosts#或者直接编辑配置qconf -shgrpl #显示已存在的主机组qconf -mhgrp @allhosts #配置(修改)一个主机组,@allhosts是默认的主机列表,根据查看到的修改
使用:
常用的SGE命令:
1. 投递任务到指定队列main.q
方法一: qsub -cwd -l vf=*G -q main.q *.sh
方法二: qsub -cwd -S /bin/bash -l vf=*G -q main.q *.sh
-cwd 表示在当前路径下投递,sge的日志会输出到当前路径。
-l vf=*G 任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂。
-q 指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列。
注: 方法一和方法二都可以投递任务到指定队列,但是方法一可能会输出警告信息“Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.” 这是因为SGE默认使用的是tcsh,而*.sh使用的是bash,所以应该在投递的时候指明命令解释器。若非要使用方法一的话,可以在脚本*.sh的开头加上#$ -S /bin/bash。
2. 投递任务到指定节点
qsub -cwd -l vf=*G -l h=node1 *.sh
qsub -cwd -l vf=*G -l h=node1 -P project -q main.q *.sh
-P 参数指明任务所属的项目
3. 查询任务
qstat -f /qstat 查看所有任务
qstat -j jobId 按任务id查看
qstat -u user 按用户查看
任务状态:
qw 表示等待状态
Eqw 投递任务出错
r 表示任务正在运行
dr 节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失
4. 删除任务
qdel -j 1111 删除任务号为1111的任务
5. 其他命令
qrsh 与qsub相比,是交互式的投递任务,注意参数:
-now yes|no 默认设置为yes
若设置为yes,立即调度作业,如果没有可用资源,则拒绝作业,任务投递失败,任务状态为Eqw。
若设置为no,调度时如果没有可用资源,则将作业排入队列,等待调度。
例子: qrsh -l vf=*G -q all.q -now no -w n *sh
qacct 从集群日志中抽取任意账户信息
qalter 更改已提交但正处于暂挂状态的作业的属性
qconf 为集群和队列配置提供用户界面
qhold 阻止已提交作业的执行
qhost 显示SGE执行主机(即各个计算节点)的状态信息
qlogin 启动telnet或类似的登录会话。
6. bash脚本与Linux环境变量
为了防止脚本运行时找不到环境变量,在投递的bash脚本的前面最好加上以下两句话:(原因见1)
#! /bin/bash
#$ -S /bin/bash
7.使用grid最好切换到gsadmin用户下,因为集群里每一台服务器的gsadmin目录都通过nfs挂载了master的gsadmin。所有服务器都共享master(cool4)的gsadmin目录
1. 投递任务到指定队列main.q
方法一: qsub -cwd -l vf=*G -q main.q *.sh
方法二: qsub -cwd -S /bin/bash -l vf=*G -q main.q *.sh
-cwd 表示在当前路径下投递,sge的日志会输出到当前路径。
-l vf=*G 任务的预估内存,内存估计的值应稍微大于真实的内存,内存预估偏小可能会导致节点跑挂。
-q 指定要投递到的队列,如果不指定的话,SGE会在用户可使用的队列中选择一个满足要求的队列。
注: 方法一和方法二都可以投递任务到指定队列,但是方法一可能会输出警告信息“Warning: no access to tty (Bad file descriptor). Thus no job control in this shell.” 这是因为SGE默认使用的是tcsh,而*.sh使用的是bash,所以应该在投递的时候指明命令解释器。若非要使用方法一的话,可以在脚本*.sh的开头加上#$ -S /bin/bash。
2. 投递任务到指定节点
qsub -cwd -l vf=*G -l h=node1 *.sh
qsub -cwd -l vf=*G -l h=node1 -P project -q main.q *.sh
-P 参数指明任务所属的项目
3. 查询任务
qstat -f /qstat 查看所有任务
qstat -j jobId 按任务id查看
qstat -u user 按用户查看
任务状态:
qw 表示等待状态
Eqw 投递任务出错
r 表示任务正在运行
dr 节点挂了之后,删除任务就会出现这个状态,只有节点重启之后,任务才会消失
4. 删除任务
qdel -j 1111 删除任务号为1111的任务
5. 其他命令
qrsh 与qsub相比,是交互式的投递任务,注意参数:
-now yes|no 默认设置为yes
若设置为yes,立即调度作业,如果没有可用资源,则拒绝作业,任务投递失败,任务状态为Eqw。
若设置为no,调度时如果没有可用资源,则将作业排入队列,等待调度。
例子: qrsh -l vf=*G -q all.q -now no -w n *sh
qacct 从集群日志中抽取任意账户信息
qalter 更改已提交但正处于暂挂状态的作业的属性
qconf 为集群和队列配置提供用户界面
qhold 阻止已提交作业的执行
qhost 显示SGE执行主机(即各个计算节点)的状态信息
qlogin 启动telnet或类似的登录会话。
6. bash脚本与Linux环境变量
为了防止脚本运行时找不到环境变量,在投递的bash脚本的前面最好加上以下两句话:(原因见1)
#! /bin/bash
#$ -S /bin/bash
7.使用grid最好切换到gsadmin用户下,因为集群里每一台服务器的gsadmin目录都通过nfs挂载了master的gsadmin。所有服务器都共享master(cool4)的gsadmin目录
挂载远程服务器网络硬盘的方法:
见参考文献:挂载网络硬盘
加上下面这一句 服务器重启之后就不需要重新挂载一遍
echo "master_ip:/home/gsadmin /home/gsadmin nfs" >> /etc/fstab
2 0
- SGE:作业调度系统安装和使用简要说明
- SGE作业调度系统学习笔记
- 集群调度系统SGE的安装和配置
- 集群调度系统SGE的安装和配置
- sge-安装和使用文档
- 小集群上SGE作业系统初探
- sge安装
- Raspberrypi安装使用开发简要说明
- sge使用
- vmware下安装ubuntu和sge
- SGE作业基本用法
- SGE作业的提交
- SGE作业基本用法
- VclSkin 简要说明和使用教程
- Grub 安装简要说明
- Grub 安装简要说明
- jenkins安装简要说明
- zhcon使用简要说明
- Linux tcpdump命令详解
- EclipseLink JPA2.1 jar-file多项目使用说明
- mysql 的基础
- C++直接初始化和复制初始化
- 不能将“this”指针从“const CPaopao”转换为“CPaopao &
- SGE:作业调度系统安装和使用简要说明
- Anaconda安装tensorflow后,spyder无法调用,终端可以。
- Hibernate命名策略自动改变表名或字段名的问题
- 中文排序
- Codeforces Round #410 (Div.2) C.Mike and gcd problem-数学
- 遇见的异常以及其解决方法整理
- 有关UIView、subview的几个基础知识点-IOS开发 (实例)
- 那些被你忽略的Android字符串使用姿势!!!
- 电脑信息监控模块:Sigar介绍(适用于JAVA、PYTHON、C#等)