由于需要安装hadoop集群,有10台机器需要安装,一开始打算用SCP复制,后来觉得不可接受(实际现场可能数倍的机器集群,就是10台也不想干)。后来在网上找了,发现了clustershell和pssh这两个工具。这两个工具随便用其中一个就可以了。
环境说明:centos6.5机器10台
需求:确定一个主机A,通过在A上执行命令即可同步在其他节点上执行。
前提:首先配置好A对各个机器的密码SSH登陆。
pssh参考网址:http://www.linuxidc.com/Linux/2011-12/49635p2.htm
实现,以pssh为例(需要python环境,也需要setuptools):
1.安装
# tar zxvf pssh-2.3.1.tar.gz
# python ./pssh-2.3.1/setup.py install
# cd ./pssh-2.3.1/bin/
2.建立一个txt文件,这边以flume.txt为名,里面放各节点IP,每一行一个
# ./pssh -P -h ~/flume.txt uptime //测试,查看各节点机器的启动时间
使用:
1.批量从远程机器复制文件到本地
./pslurp -r -h ./host/test.txt -L /usr/local/software /home/hadoop/software software
解释:-L 本地目录 ,/home/hadoop/software 为远程机器目录,software为重命名目录。
假设远程机器有两个A,B,那么复制过来的文件目录为:usr/local/software/A/software和usr/local/software/B/software
2.批量复制本地文件到远程机器
./pscp -r -h ./host/all.txt ../../software /usr/local/software
3.批量执行命令(以新建目录为例,如果目录已经存在,则报错)
./pssh -h ./host/all.txt -P mkdir /usr/local/app