1、集群分发脚本
#!/bin/bash
#验证参数
if(($#!=1))
then
echo 请输入要分发的单个文件!
exit;
fi
#获取分发文件的绝对路径
dirpath=$(cd `dirname $1`; pwd -P)
filename=`basename $1`
echo 要分发的文件的路径是:$dirpath/$filename
#获取当前的用户名
user=$(whoami)
#循环执行rsync分发文件到集群的每条机器
for((i=101;i<=103;i++))
do
echo ---------------------hadoop$i---------------------
rsync -rvlt $dirpath/$filename $user@hadoop$i:$dirpath
done
2、在集群所有机器上执行同一条命令
#!/bin/bash
#在集群的所有机器上批量执行同一条命令
if(($#==0))
then
echo 请输入您要操作的命令!
exit
fi
echo 要执行的命令是$*
#循环执行此命令
for((i=101;i<=103;i++))
do
echo ---------------------hadoop$i-----------------
ssh hadoop$i $*
done
3、集群一键启动和停止脚本
#!/bin/bash
#hadoop集群的一键启动脚本
if(($#!=1))
then
echo '请输入start|stop参数!'
exit;
fi
#只允许传入start和stop参数
if [ $1 = start ] || [ $1 = stop ]
then
$1-dfs.sh
$1-yarn.sh
ssh hadoop101 mr-jobhistory-daemon.sh $1 historyserver
else
echo '请输入start|stop参数!'
fi
start-all.sh 群起命令也可以,但是用群起命令系统会提示你这个已经过时了,建议分开启动。
4、同步日期为指定的日期
#!/bin/bash
#在hadoop102和hadoop103上同步日期为指定的日期
if(($#==0))
then
echo 请输入要修改的时间!
exit;
fi
#修改系统时间
for i in hadoop102 hadoop103
do
echo --------------同步$i的时间-------------
ssh $i sudo date -s "'$@'"
done
5、将集群的时间都同步为最新的时间
#!/bin/bash
#将集群的时间都同步为最新的时间
xcall sudo ntpdate -u ntp1.aliyun.com