使用pssh的动力源自实验室的测试项目,需要搭建一个200余台机器的集群,前期是32台机器的小集群,hadoop软件列表中的第一个。
起初我自认为装个hadoop集群,改改配置文件,重复32次就完事儿了,工作量也不是很大。
但随机测试的推移,我发现,每当需要更改一个参数需要把一个操作重复执行几十次是多么另人崩溃的一件事儿。
pssh这种神器真是管理集群必备!!
下面是pssh的安装、配置与使用,假设试图通过1台机器(主结点172.16.0.1)去修改99台机器(从节点172.16.0.2-100)
PSSH安装
(系统中已经安装有python)
只需要在主节点上安装pssh
下载地址 http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
解压后进入该目录,安装
wget http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
tar -xvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py build
python setup.py install
PSSH配置
配置主要有两项内容,一、从结点的IP列表文件;二、主节点到从节点的ssh无密钥登录
IP列表文件就是将从结点的IP按行存在一个文件里,我给它命名为host_list.txt,里面共有99行,第一行172.16.0.2
下面是ssh无密钥登录
由于好多很多操作需要有sudo权限,所以尽量ssh无密钥登录到从节点的root用户下。
ssh-keygen (然后按提示输入信息)
ssh-copy-id –i ~/.ssh/id_rsa.pub root@172.16.0.2 (将密钥复制到从节点,需要输入密码)
PSSH使用
http://www.forzw.com/archives/671里面说到有5个实用程序,在实际中我只用到pssh和pscp两个
pscp -h host_list.txt -r source_file_path destination_file_path
#例如将主节点的/home/master/1.txt拷贝到从节点的/home/slave/目录下
pscp -h host_list.txt -r /home/master/1.txt /home/slave/
#pscp是远程拷贝文件,如从主节点将文件分发到所有从节点
pssh -h host_list.txt -P "command"
#例如在从节点建立新目录/home/slave/test
pssh -h host_list.txt -P "mkdir /home/slave/test"
使用PSSH应该会的命令
pssh结合脚本使用比较高效,有以下几个命令可能会用到
sed
cat
重定向 >>与>
expect