1、分析
1)准备3台服务器(先配置一台,然后克隆两台)
2)安装JDK(之前配置过)
3)安装hadoop(hadoop下载点击此处)
4)配置环境变量(vim /etc/profile)
5)配置集群
6)单点启动
7)配置ssh
8)群起并测试集群
2、编写集群分发脚本
因为我只在其中一个服务器上安装了hadoop,需要将安装好的hadoop分发到另外两个服务器,所以这里通过集群分发脚本将hadoop分发到另外两外机器。
2.1、scp( secure copy ) 安全 拷贝
定义:scp可以实现服务器与服务器之间的数据拷贝
基本语法:
scp -r pdir/fname user@host:pdir/fname
命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
在160服务器操作,将文件从160 拷贝到 161
scp -r c/ root@192.168.121.161:/opt/software/
在161服务器操作,将文件从160拷贝到161
scp -r root@192.168.121.161:/opt/software/hadoop-3.1.3 /opt/software/
在161服务器操作,将160的文件拷贝到162
scp -r root@192.168.121.160:/opt/software/hadoop-3.1.3 root@192.168.121.162:/opt/software/
2.2、rsync远程 同步 工具
定义:
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。
差异:scp全量拷贝,rsync增量拷贝
基本语法:
rsync -av pdir/fname user@host:pdir/fname
命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称
只同步差异化文件,将160同步到161
rsync -av root@192.168.121.160:/opt/software/hadoop-3.1.3/ /opt/software/hadoop-3.1.3/
简化脚本(好用的同步分发脚本)
预期目标:1、xsync + 文件名称 ,即可实现多个服务器完成同步操作。2、任何路径下都可以实现。
下载工具xsync:yum -y install xsync
编写脚本:
#!/bin/bash
#1. 判断参数个数
if $# -lt 1
then
echo Not Enough Arguement!
exit;
fi
#2. 遍历集群所有机器
for host in 服务器160 服务器161 服务器162
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送
for file in $@
do
#4. 判断文件是否存在
if -e $file
then
#5. 获取父目录
pdir=(cd -P (dirname $file); pwd)
#6. 获取当前文件的名称
fname=(basename file)
ssh host "mkdir -p pdir"
rsync -av pdir/fname host:pdir
else
echo $file does not exists!
fi
Done
done
将脚本放到/bin目录下:mv xsync /bin
测试:在根目录下创建一个目录110,然后执行脚本,去其它服务器看是否已完成同步
建目录
mkdir 110
同步
rsync 110
同步环境变量
同步
rsync /etc/profile
生效
source /etc/profile
java
java -version
hadoop
hadoop version