torque配置

来源:互联网 发布:session用法 java 编辑:程序博客网 时间:2024/05/10 03:45

torque配置

  • torque配置
    • 实验要求
    • 通用环境配置
      • 关闭防火墙
      • 无密码登陆
      • 修改hosts文件
    • torque 安装
      • server配置
      • 节点配置
      • 创建队列
      • 测试
        • 串行文件测试
        • 并行文件测试结合MPICH
          • 出现错误
      • 要点

实验要求

在五台机器上搭建torque分布式集群环境
lk:master
slave2~5:slave节点

通用环境配置

关闭防火墙

  1. 查看防火墙状态
    service iptables status

  2. 然后永久关闭防火墙,使用chkconfig iptables off命令,此时当前虚拟机的防火墙还没有关闭。只有在关机重启后才能生效。

无密码登陆

将A的公钥放进B的~/.ssh/authorized_keys,那么A就可以无密登陆B

  • 先生成公私钥对
    ssh-keygen
    默认放在~/.ssh/

  • 将公钥弄进B中
    文件传输:xshell的rz和sz

  • 将公钥放入~/.ssh/authorized_keys
    用指令
    cat id_rsa.pub >> ~/.ssh/authorized_keys

配置完成之后,就可以直接
ssh IP进行登陆

修改hosts文件

  • /etc/hosts
IP + 昵称10.113.10.1 lk10.113.10.2 slave210.113.10.3 slave310.113.10.4 slave410.113.10.5 slave5
  • /etc/hostname
    在每个机器上的这个文件夹里面改成上面的对应的昵称
    eg:在lk中,这个文件里面就是lk,在10.113.10.2 中,就是slave2

torque 安装

server配置

  • 下载torque
    wget http://wpfilebase.s3.amazonaws.com/torque/torque-4.2.9.tar.gz
    或者在官网下载

  • 解压文件

tar -zxvf torque-XXXcd torque-XXX
  • 编译安装
//解决依赖问题yum install libxml2-devel openssl-devel gcc gcc-c++ boost-devel libtool-y//./config 这个我也不是很懂,具体要看文档./configure --prefix=/usr/local/torque //编译安装,还有构建packages//一定要make packages,后面有用makesudo make installmake packages//将生成的程序放入/etc/init.d/,便于启动cp contrib/init.d/{pbs_{server,sched,mom},trqauthd} /etc/init.d/for i in pbs_server pbs_sched pbs_mom trqauthd; do chkconfig --add $i; chkconfig $ion; done
  • 设置环境变量
//具体看本机的路径TORQUE=/usr/local/torque //配置环境变量echo "TORQUE=$TORQUE" >>/etc/profileecho "export PATH=\$PATH:$TORQUE/bin:$TORQUE/sbin" >>/etc/profilesource /etc/profileecho '/usr/local/lib' > /etc/ld.so.conf.d/torque.confldconfig./torque.setup username
  • 初始化torque server db
    ./torque.setup root

  • 启动pbs_server、pbs_sched、pbs_mom、trqauthd几个服务

for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i start; done

说明:Torque主要是由三个主要部件组成
pbs_server PBS服务守护进程,负责接收作业提交,位于服务节点上
pbs_sched PBS调度守护进程,负责调度作业,位于服务节点上
pbs_mom PBS MOM守护进程, 负责监控本机并执行作业,位于所有计算节点上

  • 配置torque

创建/var/spool/torque/mom_priv/config文件并写入如下内容

$pbsserver master$logevent 225
  • 将计算节点加入到服务节点中
    编辑/var/spool/torque/server_priv/nodes文件并写入如下内容
lk np=2slave2 np=2slave3 np=2slave4 np=2slave5 np=2
  • 配置hosts文件
 sudo vim /etc/hosts   

添加自己所控制主机的IP以及主机名
类似于:

10.113.10.1 lk10.113.10.2 slave210.113.10.3 slave310.113.10.4 slave410.113.10.5 slave5

这里注意,各个主机的名字最好改一下,不要用一样的,因为torque要用node节点的名字查找IP进行通信,同时,所用node节点名字要与主机名对应。
- 启动torque

for i in pbs_server pbs_sched pbs_mom trqauthd; do service $i restart; done

  • 节点配置
    然后sudo启动qmgr:
sudo qmgr

若提示没有该指令,则进入 /usr/local/bin ,然后sudo启动。
启动后执行以下指令:(括号内可以不填,用简写即可)

c(reate) q(ueue) abc  abc为队列名  s(et) q(ueue) abc queue_type=execution   s(et) q(ueue) abc enabled=true   s(et) s(erver) default_queue=abc  设置默认队列  s(et) s(erver) scheduling=true   c(reat) n(ode) master  添加节点,要填写之前配置的主机名,不要填IP  q(uit)此时用 pbsnodes 查看节点状态,如果master状态为free,则是正常的,否则可以杀掉mom进程然后重启一下

节点配置

  • 首先都要配置无密码登陆,/etc/hosts,/etc/hostname这些文档

  • 从server中拷贝文件
    将这两个文件拷贝到计算节点上(或者是共享磁盘上),登录进计算节点,运行:

./torque-package-mom-linux-i686.sh --install./torque-package-clients-linux-i686.sh --install
  • hosts设置
    与服务节点相同,编辑 /etc/hosts ,添加相关主机名与IP
vim /var/spool/torque/mom_priv/config

添加内容:

$pbsserver master # hostname running pbs server$logevent 225 # bitmap of which events to log
  • 启动mom服务
    同样进入 /usr/local/sbin
sudo pbs_mom或者 service pbs_mom或者ps -e | grep pbsfor i in pbs_server pbs_sched pbs_mom trqauthd; do service $i restart; done
  • 查看torque状态和节点状态
    ps -e | grep pbs
    qnodes #或者是pbsnodes –a

结果

lk     state = free     power_state = Running     np = 2     ntype = cluster     status = ......slave2     state = free     power_state = Running     np = 2     ntype = cluster     status = ......slave3     state = free     power_state = Running     np = 2     ntype = cluster     status = ......slave4     state = free     power_state = Running     np = 2     ntype = cluster     status = ......slave5     state = free     power_state = Running     np = 2     ntype = cluster     status = ......

显示free就是可以的

  • 查看消息日志:
    cd /var/spool/torque
    进入相关log文件夹查看

创建队列

qmgr添加queue
自动搞定:

$ qmgr -c "p s" ```也可以手动搞定: ```$ qmgr -c "s s scheduling=true"$ qmgr -c "c q batch queue_type=execution"$ qmgr obj=batch svr=default: Queue already exists$ qmgr -c "set queue batch started=true"$ qmgr -c "set queue batch enabled=true"$ qmgr -c "set queue batch resources_default.nodes=1"$ qmgr -c "set queue batch resources_default.walltime=3600"$ qmgr -c "set server default_queue=batch"
  • 查看queue:
$ qstat -q//outputserver: lkQueue            Memory CPU Time Walltime Node  Run Que Lm  State---------------- ------ -------- -------- ----  --- --- --  -----batch              --      --       --      --    0   0 --   E R                                               ----- -----                                                   0     0

测试

  • 常用指令
qsub jobx.pbs(提交作业) qstat (查看作业) pbsnodes (查看节点)
  • torque的调度需要使用非root用户

串行文件测试

[qsb@lk sharefold]$ cat 11.pbs #!/bin/bash #PBS -N job11 #PBS -o job11.log #PBS -e job11.err #PBS -q batch  cd /data/sharefoldecho Running on hosts `hostname` >> 11.txtecho Time is `date` >> 11.txtecho Directory is $PWD >> 11.txtecho This job runs on the following nodes: >> 11.txt cat $PBS_NODEFILE >> 11.txt echo This job has allocated 1 node >> 11.txt./hello >> 11.txt

并行文件测试(结合MPICH)

#!/bin/bash #PBS -N job22 #PBS -o /data/sharefold/job22.log #PBS -e /data/sharefold/job22.err #PBS -q batch #PBS -l nodes=4 cd /data/sharefoldecho Time is `date` >>22.txtecho Directory is $PWD  >>22.txt#echo This job runs on the following nodes:  >>22.txt#cat $PBS_NODEFILE  >>22.txt#NPROCS=`wc -l < $PBS_NODEFILE`  >>22.txt#echo This job has allocated $NPROCS nodes  >>22.txt mpiexec -machinefile machinefile -np 16 ./cpi >>22.txt

运行结果

出现错误

用脚本去写的时候,因为参照网上的程序,用了$PBS_NODEFILE$NPROCS nodes,导致一直没有结果出来

直接使用正常的命令就行了

其实挺坑的,网上的不能全信

要点

  • hostnamehosts,还有/var/spool/torque/mom_priv/config里面的控制节点的名称要相同,子节点的名称要和子节点的hostname对应上

  • 修改完hostname之后要输入 bash --login 进行更新

  • 不要轻易运行 torque.setup ——会覆盖之前的所有数据——什么运算节点信息都会清除

原创粉丝点击