如何批量管理集群系统

简介:

当我们管理数以百计或者更多的集群系统时,往往需要在每台机器上执行同样的命令,或者拷贝同样的文件,这时,我们就可以考虑使用三个小工具,分别是pdshClusterSSHmussh

Fedora系统上,我们可以直接通过yum安装这三个软件。如果你使用的是centos,那么你可以添加Fedora的源,而通过yum来安装,非常方便.

Centos系统添加fedora源可以参考:

http://pizibaidu.blog.51cto.com/1361909/1318791


安装:
yum install clusterssh pdsh pdsh-rcmd-ssh pdsh-rcmd-rsh mussh


如果是其他Linux系统,也可以到下列站点下载,

http://clusterssh.sourceforge.net

http://sourceforge.net/projects/pdsh

http://www.sourceforge.net/projects/mussh


重点来了:
无论是clusterssh还是pdsh或mussh,我们都应该相应的设置无密码登录目标系统,这方面的内容,有很多介绍,本文不再提及。

一、pdsh首先介绍一下pdsh,首先必须在管理节点和每台目标机器上都安装pdsh软件包。pdsh可以在指定的一组机器上执行同一个命令。例如需要管理下列机器,机器名分别为node1,node2,node3,node4,node5

命令格式如下:
pdsh -w [SSH OR RSH]:username@node[1,2-4,5][COMMAND]

例如希望以hadoop用户的身份,在每台机器上执行hostname命令,使用ssh方法进行连接,则结果如下:
[hadoop@node1 root]$ pdsh -w ssh:hadoop@node[1-3] hostname

node3: node3

node2: node2

node1: node1
这样可以非常清楚的看到每台机器上执行的结果。


另外一些时候,我们可以希望在每台机器上执行一组也许不确定的命令,这时我们可以省略[COMMAND]部分,用法如下:
[hadoop@node1 root]$ pdsh -w ssh:hadoop@node[1-3]

pdsh> hostname

node3: node3

node2: node2

node1: node1

pdsh> date

node3: 2013 11 02星期六 10:13:40 CST

node2: 2013 11 02星期六 10:13:40 CST

node1: 2013 11 02星期六 10:13:40 CST

pdsh> exit

[hadoop@node1root]$

pdsh软件包还自带了pdcp命令,可以将文件拷贝到一组机器上,用法如下:

pdcp -w [SSH OR RSH]:[username@node[1,2-4,5]SOURCE_FILE DESTINATION

想将文件1.txt拷贝到上述机器的/tmp目录当中,可执行下列命令:

pdcp -w ssh:hadoop@node[1-4] 1.txt /tmp

如果要拷贝的是目录,则需使用-r参数,例如将目录test拷贝到/tmp,执行命令如下:

pdcp -r -w ssh:hadoop@node[1-4] test /tmp



二、ClusterSSHclusterssh是另外一个集群管理软件,可以同时打开多个窗口进行操作。例如最简单的用法可能如下:

cssh root@node1root@node2 root@node3

不过当管理数以十计或数以百计机器的时候,在命令行就很难添加如此众多的机器名了。这时的办法是使用一个配置文件进行管理。首先生成一个配置文件,命令为:

cssh -u > ~/.csshrc

这个~/.csshrc文件里可以定义如干个组,例如在此文件结尾处添加

clusters=ibm hp dell

ibm=root@node211 root@node232root@node233 root@node234 root@node240

hp=root@hp211 root@hp232 root@hp233root@hp234 root@hp240

dell=root@dell211 root@dell232 root@dell233 root@dell234 root@dell240

这样就可以使用cssh hp或cssh ibm来连接指定的群组了。clusterssh的不便之处在于,管理机器越多,则打开的窗口越多,如果屏幕太小,就非常难受了。

024030849.jpg







三、musshmussh也是Fedora系统自带的一款管理多主机的ssh软件,和上述两种软件类似,可以互为补充。

mussh可以让你把本地的脚本,在多台ssh目的机器上执行。格式如下

mussh [OPTIONS] <-h host.. | -Hhostfile> [-c cmd] [-C scriptfile]

例如想在多个机器上执行hostname命令,可以执行如下命令:
[hadoop@node1 root]$ mussh -h hadoop@node1 hadoop@node2 hadoop@node3 -chostname

hadoop@node1:node1

hadoop@node2:node2

hadoop@node3:node3

[hadoop@node1root]$


如果想执行本地脚本test.sh,可以执行如下命令:
[hadoop@node1 root]$ mussh -h hadoop@node1 hadoop@node2 hadoop@node3 –C test.sh
#注意区分大小写



另外还可以通过建立文件的方式,使得命令执行时更为简化,例如在server.txt中写入:

hadoop@node1

hadoop@node2

hadoop@node3




[hadoop@node1 test]$ mussh -H server.txt -c hostname

hadoop@node1:node1

hadoop@node2:node2

hadoop@node3:node3

[hadoop@node1test]$

024032470.jpg


个人觉得上面的三个工具,在批量配置集群时非常有用.



本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1318867,如需转载请自行联系原作者


相关文章
|
3月前
|
Kubernetes 网络性能优化 调度
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
|
10月前
|
弹性计算 关系型数据库 RDS
运维编排系列场景-批量开启资源删除保护
背景删除保护是云产品针对云资源的一种保护措施,防止资源被意外删除。当您启用删除保护时,针对资源的删除操作将会失败,有效避免因操作疏忽、团队成员沟通不及时等原因造成不可挽回的后果。本文为您介绍如何通过运维编排批量开启资源删除(释放)保护。前提条件为ECS实例开启释放保护前提条件,参见开启和关闭实例释放保护。为用户主密钥(CMK)开启或关闭删除保护前提条件,参见开启删除保护。为RDS实例开启释放保护前
91 0
运维编排系列场景-批量开启资源删除保护
|
SQL 分布式计算 监控
网站流量日志分析--工作流调度--数据入库调度 | 学习笔记
快速学习网站流量日志分析--工作流调度--数据入库调度
80 0
|
安全 流计算
Flink能够更方便地升级、迁移、暂停、恢复应用服务
Flink能够更方便地升级、迁移、暂停、恢复应用服务
293 0
|
安全
OushuDB 管理指南系统扩容安装准备(下)
OushuDB 管理指南系统扩容安装准备
87 0
OushuDB 管理指南系统扩容安装准备(下)
|
Java 网络安全
OushuDB 管理指南系统扩容安装准备(上)
本次安装我们假设每台机器上有两个数据盘,分别mount在/data1和/data2上。在其他硬件配置下,可能有很多块盘,用户需要根据盘数的不同更改后面相应的配置信息。尤其需要注意的是HDFS的数据目录和OushuDB的临时文件目录。
132 0
OushuDB 管理指南系统扩容安装准备(上)
|
存储 Java 数据处理
Flink 状态管理-快照策略
Flink的检查点机制是建立在分布式一致快照之上的,从而实现数据处理的exactly-once处理语义。无论是Keyed state(HeapKeyStateBackend、RocksDBKeyedStateBackend)还是Operator state(DefaultOperatorStateBackend)都会接收快照执行请求(snapshot方法),而具体的快照操作都交由具体的snapshot策略完成。
700 0
|
弹性计算 运维 网络安全
运维编排系列场景--批量管理自定义的软件包
运维编排(OOS) 简介 什么是OOS Operation Orchestration Service,简称OOS,是全面、免费的云上自动化运维平台,提供运维任务的管理和执行。典型使用场景包括:事件驱动运维,批量操作运维,定时运维任务,跨地域运维等,OOS为重要运维场景提供审批,通知等功能。OOS帮您实现标准化运维任务,从而实践运维即代码(Operations as Code)的先进理念。关于
1459 0
运维编排系列场景--批量管理自定义的软件包
|
弹性计算 运维 对象存储
运维编排场景系列-----批量开启存储空间访问日志
应用场景 开启归属不同Region的Buket日志访问功能。对每个Region内的BucketName名字统一规范处理,批量做开启设置操作。并指定Object的前缀做规统一化处理。 解决方案 一、打开控制台,找到运维编排二、创建模版根据以上的任务步骤来看可以把此任务创建为以下两个模版。
|
对象存储 文件存储 存储
阿里云批量计算怎么在控制台提交和管理作业?
阿里云批量计算(BatchCompute)是一种适用于大规模并行批处理作业的分布式云服务。 用户可以提交一个任意的计算机程序,让它在阿里云的多个 VM 实例上同时运行,然后把结果写入到指定的持久化存储位置(如阿里云对象存储 OSS 或者文件存储 NAS)。
1480 0