0
点赞
收藏
分享

微信扫一扫

大数据常用管理集群脚本集合


本教程含有两个脚本:

在​​~/shell/​​新建scp脚本:

脚本一:从master复制内容到slave1、slave2

​vi scp_all.sh​

#!/bin/bash

prame=$1 #接收文件名
dirname=`dirname $1`
cd $dirname #进入该文件路径下
fullpath=`pwd -P .` #获得该文件的绝对路径
user=`whoami` #获得当前用户的身份

for ip in master slave1 slave2 #循环三个主机名
do
echo ============ $ip =============
scp -r $prame ${user}@$ip:$fullpath
done

​chmod a+x scp_all.sh​

使用说明

比如此两句话:

​scp mapred-site.xml yarn-site.xml hadoop-sny@slave1:~/bigdata/hadoop-2.7.5/etc/hadoop/​

​scp mapred-site.xml yarn-site.xml hadoop-sny@slave2:~/bigdata/hadoop-2.7.5/etc/hadoop/​

可替换成:

​cd ~/bigdata/hadoop-2.7.5/etc/hadoop/​

​~/shell/scp_all.sh mapred-site.xml​

​~/shell/scp_all.sh yarn-site.xml​

大数据常用管理集群脚本集合_linux

脚本二:用于执行三台服务器同样的指令,如​​jps​

​vi call_all.sh​

#!/bin/bash

prame=$1 #接收命令参数
for ip in master slave1 slave2 #循环三个主机名
do
echo ============= $ip $prame ==============
ssh $ip "source ~/.bash_profile;$prame"
done

​chmod a+x call_all.sh​

使用说明

比如我们要在三台服务器执行​​jps​​命令,可直接在master执行:

​~/shell/call_all.sh jps​

参考脚本:

对比与脚本一,如节点很多的时候,可参考下面方式

#!/bin/bash

prame=$1 #接收文件名
dirname=`dirname $1`
basename=`basename $1` #得到文件的basename
cd $dirname #进入该文件路径下
fullpath=`pwd -P .` #获得该文件的绝对路径
user=`whoami` #获得当前用户的身份

for(( i = 1; i < 3; i = $i + 1 ));do #遍历发送
echo ============ node$i =============
scp -rv $prame ${user}@node$i:$fullpath
done

作者简介:​​邵奈一​​

全栈工程师、市场洞察者、专栏编辑

公众号、微博、​:​​邵奈一​​

福利:
​​邵奈一的技术博客导航​​



举报

相关推荐

0 条评论