ClusterShell 轻量级集群管理工具,它是基于ssh和scp命令进行封装。而其中最常用的就是Clush命令。

Clush是一个非常方便的集群管理命令,通过它可以批量管理多台服务器执行相同的命令(例如安装软件,监测运行状况...),从而达到管理多个节点的目的。

那么下面我们就来说说怎么安装和配置以及使用Clush。

一、ClushShell的安装

一个命令就可以搞定。在主节点上安装ClushShell

1.首先下载好安装包:https://github.com/cea-hpc/clustershell/downloads

2.执行安装:

rpm -ivh clustershell-1.6-1.el6.noarch.rpm(如果是red hat执行yum install clustershell,不用下载安装包)

二、配置

1.首先配置节点之间的免密登陆。否则clush命令无法执行。具体配置大家可以看我的这篇文章:ssh免密登陆配置

2.配置节点组: vim /etc/clushershell/groups  写入格式: 组名:节点1 节点2 节点3

注:多个连续节点可用[...-...]表示,例如 hadoop:192.168.2.[155-157]

3.保存退出

三、clush命令的使用:

clush -[option] group组名 "要执行的命令"

1.参数含义:

-[option]
-g 后面指定设置的组
-a 表示所有的组
-w 后面跟主机节点,多个主机中间用逗号隔开
-x 表示去掉某个节点进行操作。后面跟主机节点,多个主机中间用逗号隔开
-X 表示去掉某个组进行操作,多个组之间用逗号隔开
-b 相同输出结果合并

注:拷贝参数(需要命令加在后面,下面有举例说明):

--copy 表示从本地拷贝文件或目录到远程集群节点上,等于-c
--rcopy 表示从远程集群节点上拷贝文件或目录到本机上
--dest 表示远程机器的存放路径。--dest后面可以空格跟目标路径,也可以是=目标路径。  比如--dest /tmp 等同于 --dest=/tmp

2.使用举例:

查看所有test同组节点的内存状况:

clush -g test "free -g"

从本地拷贝到远程服务器组:

clush -g test --copy /root/test.txt --dest /root/

从远程服务器拷贝到本地:

clush -g test -rcopy /root/test.txt --dest /root/

注:在多台不同服务器上向本地拷贝回同一个名称的文件。会自动在文件名后面加上服务器ip以区分这些同名文件。