hadoop配置_Hadoop完全分布式配置—分发脚本

本文介绍了如何通过脚本快速高效地在多台虚拟机上同时部署Hadoop,包括使用SCP安全拷贝和rsync远程同步两种方式,详细展示了脚本编写及执行过程,最终实现Hadoop、jdk和环境配置的自动化安装。
摘要由CSDN通过智能技术生成

4110e74f5b3ecbeb6b97501e2cd6d21c.png

在完成一台虚拟机的java和hadoop安装后,我们开始要同时部署好其他几台虚拟机。但是一个一个装的话,就非常低效了。所以我们要通过脚本来完成。

目前,Hadoop100已经装完了jdk和hadoop。其他3台虚拟机完成了网络配置,我们可以通过分发脚本,来为它们安装jdk和hadoop。

282f0f97fac7244068f53a09b15433c8.png

两种拷贝方式

  • SCP 安全拷贝

scp可以实现服务器与服务器之间的数据拷贝。

基本语法

scp -r $pdir/$fname $user@hadoop$host:$pdir

命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径

举例

要将hadoop100的hadoop包拷贝到hadoop101

scp -r niliu@hadoop100:/opt/module/hadoop-2.7.2 niliu@hadoop101:/opt/module

scp的指令可以跨服务器执行,也就是可以不在hadoop100这台虚拟机上执行,比如在hadoop102执行。

c67ad3a7fcd03166600d8ea48062e625.png

scp的方式拷贝有个弊端,它只是单纯的拷贝文件内容,复制过来不带时间戳和所有者权限。所以我们编写分发脚本会使用第二种方式 rsync 远程同步

  • rsync 远程同步

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去,且复制的文件带有所有者权限和时间戳。

基本语法

rsync -av $pdir/$fname $user@hadoop$host:$pdir

命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径

参数说明

-a:归档拷贝
-v:显示复制过程

举例

要将hadoop100的hadoop包拷贝到hadoop101

rsync -av /opt/module/hadoop-2.7.2 root@hadoop101:/opt/module

63c56c55415442bb89cd7b3c8dc399b1.png

脚本编写

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
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=101; host<104; host++)); do
 echo ------------------- hadoop$host --------------
 rsync -av $pdir/$fname $user@hadoop$host:$pdir
done

在hadoop100虚拟机上,到根目录下,开始创建名为xsync的脚本文件

指令:cd ~

指令:vim xsync

然后把脚本写入

e3c5a0a075341200d2f8128995a5b7e6.png

修改脚本执行权限

指令:chmod 777 xsync

1203458d689d09f6a4c1bf5539d97728.png

文件变绿了,说明修改成功了

再将脚本文件添加环境变量,这样在任何目录下都可以执行

指令:sudo cp xsync /bin

进入module目录开始执行脚本,分别拷贝hadoop、jdk、etc/profile(环境变量)

指令:cd /opt/module

拷贝hadoop

指令:xsync hadoop-2.7.2

拷贝完成

fbb86a449a9e04f39c80620906773fb0.png

拷贝jdk

指令:xsync jdk1.8.0_144

拷贝完成

8e743c0ec07f877da742315f7af6074c.png

拷贝etc/profile

指令:sudo xsync /etc/profile(要用root权限)

拷贝完成

59be3bc423aa08c24ca6cb2b3111fef4.png

此时打开Xshell的撰写栏,改为输入全部会话

5ccf5be24d38e512aea4e2168976ea3e.png

41e4b736f32ae1171eca7b85bd85d986.png

输入指令service network restart重启网络

b724229821844017e12cb977234ac407.png

如果报错就重启虚拟机即可

最后依次检查一下,发现3个虚拟机都安装配置好了,大功告成!

841f6b12b95aeabca74a1c3dbb5890b1.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值