前言
感谢我关注的朋友,我亦无他,收集整理的大部分脚本。
基础版
群发脚本XSync(xsync)
#!/bin/bash
#1 获取参数,如果不够直接退出
pcount=$#
if ((pcount==0)); then
echo 没有输入需要传递的文件或文件夹!!;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环遍历工作主机 执行分发命令
for host in hadoop102 hadoop103 hadoop104
do
echo ------------------- $host --------------
rsync -av $pdir/$fname $user@$host:$pdir
done
群控命令脚本XCall(xcall)
#!/bin/bash
#接收命令
params=$@
#验证参数
if(($#==0))
then
echo 请传入要执行的命令!
exit;
fi
echo "要执行的命令是:$params"
for((i=102 ;i<=104 ;i=$i+1 ));
do
echo ==========hadoop$i $params==========
ssh hadoop$i "source /etc/profile;$params"
done
群起journalNode
#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo "================ $i ================"
#根据自己的zkServer.sh所在位置适当修改
ssh $i 'source /etc/profile && /opt/module/hadoop-2.7.2/sbin/hadoop-daemon.sh start journalnode'
done
群起ZK(zkstart)
#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo "================ $i ================"
#根据自己的zkServer.sh所在位置适当修改
ssh $i 'source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh start'
done
群关zk(zkstop)
#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo "================ $i ================"
#根据自己的zkServer.sh所在位置适当修改
ssh $i 'source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh stop'
done
群起zk及hadoop相关进程(zhstart)
#!/bin/bash
echo "================ 开始启动所有节点服务 ==========="
echo "================ 正在启动Zookeeper ==========="
for i in hadoop102 hadoop103 hadoop104
do
ssh $i 'source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh start'
done
echo "================ 正在启动HDFS ==========="
#根据自身情况修改用户名
ssh zhengkw@hadoop102 '/opt/module/hadoop-2.7.2/sbin/start-dfs.sh'
echo "================ 正在启动YARN ==========="
ssh zhengkw@hadoop103 '/opt/module/hadoop-2.7.2/sbin/start-yarn.sh'
echo "================ 正在开启JobHistoryServer ==========="
ssh zhengkw@hadoop103 '/opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh start historyserver'
群关zk及hadoop相关进程(zhstop)
#!/bin/bash
echo "================ 开始关闭所有节点服务 ==========="
echo "================ 正在关闭Zookeeper ==========="
for i in hadoop102 hadoop103 hadoop104
do
ssh $i 'source /etc/profile && /opt/module/zookeeper-3.4.10/bin/zkServer.sh stop'
done
echo "================ 正在关闭HDFS ==========="
ssh zhengkw@hadoop102 '/opt/module/hadoop-2.7.2/sbin/stop-dfs.sh'
echo "================ 正在关闭YARN ==========="
ssh zhengkw@hadoop103 '/opt/module/hadoop-2.7.2/sbin/stop-yarn.sh'
echo "================ 正在关闭JobHistoryServer ==========="
ssh zhengkw@hadoop103 '/opt/module/hadoop-2.7.2/sbin/mr-jobhistory-daemon.sh stop historyserver'
群起kafka脚本kstart
#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo "================ $i ================"
#根据自己的kafka所在位置适当修改
ssh $i 'source /etc/profile && /opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties'
done
群关kafka脚本kstop
#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
echo "================ $i ================"
#根据自己的kafka所在位置适当修改
ssh $i 'source /etc/profile && /opt/module/kafka/bin/kafka-server-stop.sh'
done
特别注意
官方的kafka服务关闭脚本存在失效的可能,这里放一个链接来解决!
注意
- 所有脚本创建好后配置好ssh免密服务,可参照点我!here!!里面的ssh免密配置。
- 给予脚本执行权限!
- 根据自己的配置修改用户名或者是主机名!!!!
- 适当分发脚本到/home/用户名/bin/下
进阶版!
zk.sh
#!/bin/bash
#脚本只接受start或stop或status三个参数中任意一个
#参数数量校验
if(($#!=1))
then
echo 脚本只接受start或stop或status三个参数中任意一个
exit;
fi
#对参数的内容进行校验,通过后,执行启动或停止或查看状态的命令
if [ $1 = start ] || [ $1 = stop ] || [ $1 = status ]
then
xcall /opt/module/zookeeper-3.4.10/bin/zkServer.sh $1
else
echo 脚本只接受start或stop或status三个参数中任意一个
fi
hd-yar.sh
#!/bin/bash
#提供对hadoop集群的一键启动和停止,只接受start或stop参数中的一个
#判断参数的个数
if(($#!=1))
then
echo 请输入start或stop参数中的任意一个
exit;
fi
#校验参数内容
if [ $1 = start ] || [ $1 = stop ]
then
$1-dfs.sh
#根据RM配置启动
ssh hadoop103 $1-yarn.sh
#高可用单启RM
ssh hadoop104 yarn-daemon.sh start resourcemanager
#根据历史所在配置启动历史服务
ssh hadoop103 mr-jobhistory-daemon.sh $1 historyserver
xcall jps
else
echo 请输入start或stop参数中的任意一个
fi