Linux运维式具之pdsh

做系统运维的时候,我们经常需要同时在多台机器上执行相同的命令,这个时候可以使用类似pssh,pdsh的并行执行shell的工具。

当然,之前在没有使用这些工具之前,如果有ssh无密码互访,我们可以自己写for循环来执行,但是自己写的for循环是串行,

pdsh是并发。

比如,当你接管一个新的大数据集群的时候,需要做的一件事情就是要熟悉所有的配置信息,以做到心中有数,在熟悉了主配置文件之后,

我们需要比对datanode节点的配置文件是否一致,这个时候,我们可以使用pdsh.

pdsh –w dn[1-50] ‘md5sum /app/hadoop/etc/hadoop/core-site.xml’ | dshbak –c

直接列出相同组的datanode列表和不同的,一下子就可以看清楚哪些是相同的,哪些是不同的。

或者在troubleshooting问题的时候,比对系统配置文件是否一致。

在安装pdsh包的时候,会自带有一个工具pdcp并行复制工具,可以帮助进行并行的文件分发。

比如你在dn1上修改了一个mapred-site.xml的文件,然后需要把这个文件纷发到其他dn节点,可以这么做

pdcp –w dn[2-100]  /pathtohadoop/etc/hadoop/mapred-site.xml /pathtohadoop/etc/hadoop/

即可,非常方便易用。

还可以做类似系统内核更新,你可以使用pdcp先把安装包纷发出去,然后通过pdsh执行安装命令,一下完成所有机器的安装。

posted on 2015-11-22 14:49  tneduts  阅读(1284)  评论(3编辑  收藏  举报

导航