⑴ 使用集群运行你的python代码
集群中有四台主机,master(无GPU),node01,node02,node03(GPU主机),直接运行 python main.py 程序将在CPU中运行。
如下步骤可以运行你的程序:
在你的文件目录下新建一个 lsf.sh 文件,正文写入:
其中 python main.py 是你运行程序的命令,然后:
source activate 你的conda环境
开启环境,用
bsub <lsf.sh 向集群提交运算任务。
即可运行程序,终端会给你一个任务序号,输出文件就是 序号.out 和 序号.err 。
** 其他命令:**
bjobs -W 查看你的任务运行状况
bhosts -gpu 查看集群GPU使用情况。
⑵ GMX中常见小错误汇总
Q: gmx genion命令:往溶剂中添加离子时报错:"No line with moleculetype SOL found the [ molecules ] section of file "topol.top"
A: 首先检查拓扑文件是否正确,如果在拓扑没有问题的情况下依然报错,往往可能是由于拓扑文件在Windows系统下处理过,行尾标记有问题。用dos2unix工具处理一下拓扑文件即可。
Q: 到底是什么错误导致了LINCS Warning?
A: 导致LINCS Warning的错误种类很多,导致这个问题比较难排查。但本质上是由于构型不合理导致的。具体可以参看有关这篇 译文 。今日又发现一个导致LINCS Warning的错误:体系盒子太小!当模拟体系的盒子太小时,会导致mdrun过程中区域分解不合理,引发LINCS Warning。
Q: 伞形抽样结果产生的histogram文件中只有一个峰?
A: 伞形抽样过程中挑选了几个窗口就会在histogram文件中产生几个峰,不过在用xmgrace查看图形时应使用 xmgrace -nxy histo.xvg 读取多列数据。
Q: 使用虚原子时报错atom XX (Res XXX) has mass 0 (state A) / 0 (state B)。
A: 虚原子的质量应当设置为一个非零的极小数,一般可以设为0.001。
Q: 如何使用constraint约束原子之间的角度。
A: 在[ constraint ]中添加一对原子即可强制采用约束算法对两者之间的相对位置进行约束,LINCS算法精度更高但不会约束角度,SHAKE算法则可实现对角度的约束。对于三原子间特殊的键角可以通过添加两组constraint来实现。关于constraint的详细信息可参照sob老师的 博文 。
Q: 运行模拟时报错:
A: 这个错误不太常见,在网上并没有查询到很多的信息。在gmx邮件列表中仅有三四个相关的问题,Justin的回答也并没有明确指出更正方法,只是指出该错误与拓扑文件以及约束设置有关,可以重点检查。详细信息参见 gmx邮件列表 。该问题的题主将constraints设置为all-bonds后没用再出现该错误。此处我也通过修改all-bonds解决。
⑶ K8s集群上使用Helm部署2.4.6版本Rancher集群
参考文档
Helm安装Rancher
Rancher简介
Rancher是一套容器管理平台,它可以帮助组织在生产环境中轻松快捷的部署和管理容器。 Rancher可以轻松地管理各种环境的Kubernetes,满足IT需求并为DevOps团队提供支持。
Kubernetes不仅已经成为的容器编排标准,它也正在迅速成为各类云和虚拟化厂商提供的标准基础架构。Rancher用户可以选择使用Rancher Kubernetes Engine(RKE)创建Kubernetes集群,也可以使用GKE,AKS和EKS等云Kubernetes服务。 Rancher用户还可以导入和管理现有的Kubernetes集群。
Rancher支持各类集中式身份验证系统来管理Kubernetes集群。例如,大型企业的员工可以使用其公司Active Directory凭证访问GKE中的Kubernetes集群。IT管理员可以在用户,组,项目,集群和云中设置访问控制和安全策略。 IT管理员可以在单个页面对所有Kubernetes集群的健康状况和容量进行监控。
Rancher为DevOps工程师提供了一个直观的用户界面来管理他们的服务容器,用户不需要深入了解Kubernetes概念就可以开始使用Rancher。 Rancher包含应用商店,支持一键式部署Helm和Compose模板。Rancher通过各种云、本地生态系统产品认证,其中包括安全工具,监控系统,容器仓库以及存储和网络驱动程序。下图说明了Rancher在IT和DevOps组织中扮演的角色。每个团队都会在他们选择的公共云或私有云上部署应用程序。
集群环境
Helm环境
添加Chart仓库地址
通过Helm安装Rancher
注意:这里指定了hostname=rancher.minminmsn.com,必须使用域名访问才行。
注意:rancher默认使用https访问,因此,需要有一个公网的SSL才行,可以使用之前ingress-secret2021。
注意:其中有几个参数需要特别注意,如果不注意后续再修改服务配置也可,比如namespace、hostname、ingress等,下面正式helm部署rancher
发现默认是3节点rancher集群,测试k8s集群只有2个节点,所以有1个pod没有启动,这里需要修改deploy中的replicas为2
修改其中replicas由2变为2
全部内容如下
修改ingress证书
需要修改rancher默认ingress的secretName由tls-rancher-ingress变更为ingress-secret2021
登陆rancher设置环境
默认密码为admin需要设置复杂密码,默认语言为英文可以改为中文,默认管理本地k8s集群
添加TKE集群
创建ptech集群并导入,需要在ptech集群上执行如下
创建enterprise集群并导入,需要在enterprise集群上执行如下
最终效果如下
⑷ linux集群使用命令
存储NAS 文件操作
df -h查看空间使用情况
警惕超大 nohup.out
任务提交
任务提交前
qhost--查看集群负载状态
qsub / qsub-sge.pl--提交任务
qstat--查看任务状态
qdel / qmod--任务控制
任务查看
qhost -j---列出所有用户在每个节点上的任务
qhost -q---列出每个节点上每个队列的任务数
qhost -u username---列出某个用户在每个节点上的任务
提交命令
qsub -cwd -q queue.q test.sh
qsub-sge.pl --maxproc 50 --resource vf=5G --queue queue.q test.sh
任务查看2
qstat -u username---查看某个用户的任务
qstat -u *,---查看所有用户的任务
qstat –j jobs_ID---查看某个任务的详细信息
查看.e和.o文件
.e:错误信息
.o:标准输出
任务控制
qdel jobID---删除某个任务
qdel -u username---删除某个用户的所有任务
qmod -s jobID--挂起某个任务
qmod -us jobID---继续运行某个挂起的任务
按任务占用内存大小选择相应的队列
查看队列 qstat -g c
QUEUE
PE.q--并行
cloud.q--云平台
general.q--96G节点
middle.q--96G节点
great.q--大内存节点
plus.q--大内存节点
single.q--Trinity组装
single._p.q---Trinity组装(占用内存较大)
TOP监视
编辑于 2017-04-21
⑸ 【Redis】Redis Cluster-集群数据迁移
Redis通过对KEY计算hash,将KEY映射到slot,集群中每个节点负责一部分slot的方式管理数据,slot最大个数为16384。
在集群节点对应的结构体变量clusterNode中可以看到slots数组,数组的大小为CLUSTER_SLOTS除以8,CLUSTER_SLOTS的值是16384:
clusterState
clusterNode里面保存了节点相关的信息,集群数据迁移信息并未保存在clusterNode中,而是使用了clusterState结构体来保存:
clusterState与clusterNode的关系
在手动进行数据迁移时,需要执行以下步骤:
在进行数据迁移之前,首先在需要迁入的目标节点使用 SETSLOT 命令标记要将SLOT从哪个节点迁入到当前节点:
然后在源节点也就是slot所在节点使用 MIGRATING 命令标记将数据迁出到哪个节点:
比如slot1当前在node1中,需要将slot1迁出到node2,那么首先在nodd2上执行 IMPORTING 命令,标记slot准备从node1迁到当前节点node2中:
然后在node1中执行 MIGRATING 命令标记slot1需要迁移到node2:
clusterCommand
SETSLOT 命令的处理在clusterCommand函数(cluster.c文件中)中:
在标记完迁入、迁出节点后,就可以使用 CLUSTER GETKEYSINSLOT 命令获取待迁出的KEY:
<slot>:哈希槽的值
<count>:迁出KEY的数量
getkeysinslot 命令的处理也在clusterCommand函数中,处理逻辑如下:
完成上两步之后,接下来需要在源节点中执行 MIGRATE 命令进行数据迁移, MIGRATE 既支持单个KEY的迁移,也支持多个KEY的迁移,语法如下:
migrateCommand
MIGRATE 命令对应的处理函数在migrateCommand中(cluster.c文件中),处理逻辑如下:
createDumpPayload
createDumpPayload函数在cluster.c文件中:
restoreCommand
目标节点收到迁移的数据的处理逻辑在restoreCommand中(cluster.c文件中):
数据迁移的最后一步, 需要使用 CLUSTER SETSLOT 命令,在源节点和目标节点执行以下命令,标记slot最终所属的节点,并清除第一步中标记的迁移信息 :
<slot>:哈希槽
<node>:哈希槽最终所在节点id
clusterCommand
CLUSTER SETSLOT <slot> NODE <node> 命令的处理依旧在 clusterCommand 函数中,处理逻辑如下:
总结
参考
极客时间 - Redis源码剖析与实战(蒋德钧)
Redis版本:redis-6.2.5
⑹ TOOLs:slurm集群的使用
目前用过的集群系统有PBS/qsub系统,感觉是命令简单,容易上手。
现在使用的是SLURM系统,
SLURM系统常用命令如下:
注意把 username 替换成你自己的账户名
1.常用的查看、取消、运行命令
任务状态码说明:PD排队;R运行;S挂起;CG正在退出
中心的服务器node01大节点,80核,500G mem,node02-09小节点,56核,120G mem。
当提交的任务的cpu数量超过node的总cpu数量时候,任务可以被正常提交,但是无法被执行。
2.test.s的内容和参数
注意:partition需要自己查看自己的服务器的分区名称,使用 sinfo 命令可以查看到。
参考1 PBS和slurm的命令对比
⑺ 如何在Linux下搭建hadoop集群环境 小残's Blog
前期准备
l 两台linux虚拟机(本文使用redhat5,IP分别为 IP1、IP2)
l JDK环境(本文使用jdk1.6,网上很多配置方法,本文省略)
l Hadoop安装包(本文使用Hadoop1.0.4)
搭建目标
210作为主机和节点机,211作为节点机。
搭建步骤
1修改hosts文件
在/etc/hosts中增加:
IP1 hadoop1
IP2 hadoop2
2 实现ssh无密码登陆
2.1 主机(master)无密码本机登陆
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
直接回车,完成后会在 ~/.ssh/ 生成两个文件: id_dsa 和 id_dsa.pub 。
这两个是成对出现,类似钥匙和锁。
再把 id_dsa.pub 追加到授权 key 里面 ( 当前并没有 authorized_key s文件 ) :
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost hostname
还是要输入密码,一般这种情况都是因为目录或文件的权限问题,看看系统日志,确实是权限问题
.ssh下的authorized_keys权限为600,其父目录和祖父目录应为755
2.2 无密码登陆节点机(slave)
slave上执行:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
生成.ssh目录。
将master上的authorized_keys复制到slave上:
scp authorized_keys hadoop2:~/.ssh/
实验:在master上执行
ssh hadoop2
实现无密码登陆。
3 配置Hadoop
3.1拷贝hadoop
将hadoop-1.0.4.tar.gz ,拷贝到usr/local 文件夹下,然后解压。
解压命令:
tar –zxvf hadoop-1.0.4.tar.gz
3.2查看 cat /etc/hosts
IP1 hadoop1
IP2 hadoop2
3.3 配置 conf/masters 和 conf/slaves
conf/masters:
1
IP1
conf/slaves:
1
2
IP2
IP2
3.4 配置 conf/hadoop-env.sh
加入
1
export JAVA_HOME=/home/elvis/soft/jdk1.7.0_17
3.5 配置 conf/core-site.xml
1
2
3
4
<property>
<name>fs.default.name</name>
<value>hdfs://IP1:9000</value>
</property>
3.6 配置 conf/hdfs-site.xml
加入
<property>
<name>dfs.http.address</name>
<value>IP1:50070</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
3.7 配置conf/mapred-site.xml
加入
<property>
<name>mapred.job.tracker</name>
<value>192.168.1.50:8012</value>
</property>
3.8 建立相关的目录
1
/usr/local/hadoop/ //hadoop数据和namenode目录
【注意】只创建到hadoop目录即可,不要手动创建data和namenode目录。
其他节点机也同样建立该目录。
3.9 拷贝hadoop文件到其他节点机
将hadoop文件远程到其他节点(这样前面的配置就都映射到了其他节点上),
命令:
1
scp -r hadoop-1.0.4 IP2:/usr/local/
3.10 格式化Active master
命令:
bin/hadoop namenode -format
3.11 启动集群 ./start-all.sh
现在集群启动起来了,看一下,命令:
1
bin/hadoop dfsadmin -report
2个datanode,打开web看一下
浏览器输入:IP1:50070
打完收工,集群安装完成!