hadoop集群管理之统一执行

hadoop集群ssh打通之后,再进行一些统一的脚本执行等等操作时,可以通过脚本的方式进行,例如:全集群查看进程,统一分发配置文件等等。通过ssh+linux脚本,在namenode上就可以完成对整个集群的管理,这种方法也大大节省了集群的管理效率。
这一部分我们先介绍统一命令执行的相关操作:
  1. 脚本内容
if [ $# -lt 2 ]
then
  echo "Usage: ./runRemoteCmd.sh Command MachineTag"
  echo "Usage: ./runRemoteCmd.sh Command MachineTag confFile"
  exit
fi
这里首先判断传输参数,脚本需要2个参数进行传递,1:需要执行的命令2:脚本执行机器tag。这个tag在下面介绍配置文件时进行描述。
cmd=$1
tag=$2
if [ 'a'$3'a' == 'aa' ]
then

  confFile=/usr/local/soft/shell/deploy.conf
else
  confFile=$3
fi
以上代码是对参数的描述,必要的参数即上面说到的1、2,参数3是可配置项,可根据自己本身命令的需求,重新定义配置文件。
if [ -f $confFile ]
then
    for server in `cat $confFile|grep -v '^#'|grep ','$tag','|awk -F',' '{print $2}'`
    do
       echo "*******************$server***************************"
       ssh $server "source /etc/profile; $cmd"
    done
else
  echo "Error: Please assign config file or run runRemoteCmd.sh command with deploy.conf in same directory"
fi
以上是本次分享代码的核心部分了,通过遍历标记tag的服务器,统一通过ssh的方法进入,并且执行相关命令。注意:执行命令之前,去要source你的环境变量,也就是source /etc/profile部分要按照你自己的环境修改。
  1. 配置文件
    上面说到需要通过配置文件进行配置,对集群内的服务器进行tag操作,下面我们对配置文件进行描述:
namenode,all,nn,
datanode1,all,dn,
datanode2,all,dn,
datanode3,all,dn,
上述配置文件当中,dn、all就是对应服务器的标签,在实际管理过程中,标签的数量肯定会更多,通过逗号分隔的方式,向后添加服务器标签就可以了。 
运行举例,假如我们的脚本名为run.sh,我们要查看整个集群的hadoop进程情况
run.sh "jps" all

“`
最后,个人建议,将脚本加入的path当中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值