编写两个方便配置Hadoop集群的脚本

本文介绍了如何编写两个shell脚本,用于高效地管理和配置Hadoop集群。第一个脚本myrsync用于将文件分发到集群的所有节点,第二个脚本mycall则能在所有主机上同时执行相同命令。这两个脚本简化了集群操作,提高了效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一:集群分发脚本

使用此脚本,我们可以复制文件到集群中所有节点的相同目录下。使用者可以输出绝对路径或相对路径。

1.1 核心命令:

rsync  -rvl /opt/module root@pdc:/opt/

1.2 使用方式

建议集群机器前缀相同,后缀数字不同,如pdc1、pdc2、pdc3、pdc4

[root@pdc ~]#myrsync 要同步的文件名称 起始机器 结束机器

1.3 开始制作

1.3.1 在/usr/local/bin目录下创建myrsync文件

注:在/usr/local/bin这个目录下存放的脚本,可以在系统任何地方直接执行。

[root@pdc ~]# su root
[root@pdc ~]# cd /usr/local/bin/
[root@pdc ~]# touch myrsync
[root@pdc ~]# vi myrsync

1.3.2 shell脚本内容如下

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称 $1为第一个参数
# basename得到最后一个/后的名称,即文件名
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径 dirname得到最后一个/前的名称,即文件路径
# cd -p 直接进入到绝对路径下(确保得到实际的物理路径)
# 然后用pwd显示出来,进行赋值
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
# 参数不要硬编码
for((host=$2; host<$3; host++)); do
        #echo $pdir/$fname $user@hadoop$host:$pdir
        echo --------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@pdc$host:$pdir
done

1.3.3 修改脚本权限

[root@pdc bin]# chmod a+x myrsync(或 chmod 777 myrsync)

1.3.4 调用例子

[root@pdc ~]# myrsync /opt/module 2 4

二:集群执行脚本

使用此脚本,我们可以在所有主机上同时执行相同的命令

1.1 核心命令:

任意命令

1.2 使用方式

[root@pdc ~]# mycall 命令	

1.3 开始制作

1.3.1 在/usr/local/bin目录下创建mycall文件

[root@pdc bin]# su root
[root@pdc bin]# cd /usr/local/bin/
[root@pdc bin]# touch mycall
[root@pdc bin]# vi mycall

1.3.2 shell脚本内容如下

知识点补充:
$ @ :这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待,不被双引号“”包含时,以$1 2…2 …2n的形式输出所有参数

#!/bin/bash
# 1.获取参数个数,如果没有参数,则退出
pcount=$#
if((pcount==0));then
echo no args;
exit;
fi

$@
for((host=2; host<=3; host++)); do
        echo ----------pdc$host---------
        ssh pdc$host $1
done

1.3.3 修改脚本权限

[root@pdc bin]# chmod a+x mycall(或 chmod 777 myrsync)

1.3.4 调用例子

[root@pdc ~]# myrsync /opt/module 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值