大数据专栏 | ||
---|---|---|
上一篇 | 主目录 | 下一篇 |
目录
【前言】
使用hadoop批量命令脚本可以在一台服务器上对集群多台服务器进行同一个命令的操作并将结果显示在本服务器上
xcall.sh批量命令脚本:
#!/bin/bash
params=$@
for i in hadoop01 hadoop02 hadoop03 hadoop04 hadoop05
do
echo ============= [$i] $params =============
ssh $i "source /etc/profile;$params"
done
设置xcall.sh为可执行文件:
chmod 777 xcall.sh
如果想在任何地方都能使用xcall.sh命令,需要将xcall.sh命令放到 /usr/local/bin/
目录下
注:这个jps是对所有的hadoop01~05都执行了一遍,然后显示在01.zk集群在01 ~ 04上,如果在hadoop01执行xcall.sh zkServer.sh start
,hadoop05会报错。
如何通过传递传递参数给xcall.sh,使其对特定的某些服务器进行操作???(要代码的邮箱:shaneholmes@qq.com,以后就可以在一台服务器节点上对其他任意多台的服务器进行操作啦)
例如:
[hadoop@hadoop01 ~]$ xcall.sh hadoop03 start-yarn.sh
============= [ hadoop03 ~]$ start-yarn.sh =============
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/apps/hadoop-2.7.3/logs/yarn-hadoop-resourcemanager-hadoop03.out
hadoop02: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hadoop02.out
hadoop04: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hadoop04.out
hadoop05: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hadoop05.out
hadoop01: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hadoop01.out
hadoop03: starting nodemanager, logging to /home/hadoop/apps/hadoop-2.7.3/logs/yarn-hadoop-nodemanager-hadoop03.out
[hadoop@hadoop01 ~]$ xcall.sh hadoop01 hadoop02 hadoop03 hadoop04 zkServer.sh status
============= [ hadoop01 ~]$ zkServer.sh status =============
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
============= [ hadoop02 ~]$ zkServer.sh status =============
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader
============= [ hadoop03 ~]$ zkServer.sh status =============
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
============= [ hadoop04 ~]$ zkServer.sh status =============
ZooKeeper JMX enabled by default
Using config: /home/hadoop/apps/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: observer
[hadoop@hadoop01 ~]$ xcall.sh hadoop01 hadoop02 hadoop03 hadoop04 hadoop05 jps
============= [ hadoop01 ~]$ jps =============
2800 DataNode
3619 NodeManager
3092 DFSZKFailoverController
3831 Jps
2253 QuorumPeerMain
2685 NameNode
============= [ hadoop02 ~]$ jps =============
2517 DataNode
3238 NodeManager
2135 QuorumPeerMain
2602 JournalNode
2443 NameNode
2719 DFSZKFailoverController
3455 Jps
============= [ hadoop03 ~]$ jps =============
2482 JournalNode
4067 NodeManager
4453 Jps
2104 QuorumPeerMain
2398 DataNode
3950 ResourceManager
============= [ hadoop04 ~]$ jps =============
2097 QuorumPeerMain
2340 DataNode
2932 NodeManager
2439 JournalNode
3131 Jps
============= [ hadoop05 ~]$ jps =============
2093 DataNode
2605 NodeManager
2750 Jps