6-hadoop的运行模式(完全分布式)(上)
注意:在实际的生产开发中均是使用完全分布式
1、搭建步骤
1)准备3台客户机(关闭防火墙、静态ip、主机名称)
2)安装JDK
3)配置环境变量
4)安装Hadoop
5)配置环境变量
6)配置集群
7)单点启动
8)配置ssh
9)群起并测试集群
2、scp:(secure cope)安全拷贝
1、scp定义:
scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)
2、基本语法
scp -r pdir/pdir/pdir/fname user@hadoopuser@hadoopuser@hadoophost:pdir/pdir/pdir/fname
命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
3、案例实操
在hadoop1上,将hadoop1中/opt/module目录下的软件拷贝到hadoop2上。
[root@hadoop1 /]$ scp -r /opt/module root@hadoop1:/opt/module
在hadoop3上,将hadoop1服务器上的/opt/module目录下的软件拷贝hadoop3上。
[root@hadoop3 opt]$scp -r root@hadoop1:/opt/module·root@hadoop3:/opt/module
在hadoop3上操作将hadoop1中/opt/module目录下的软件拷贝到hadoop4上。
[root@hadoop3 opt]$ scp -r root@hadoop1:/opt/module root@hadoop4:/opt/module
注意:拷贝过来的/opt/module目录,别忘了在hadoop102、hadoop103、hadoop104上修改所有文件的
所有者和所有者组。sudo chown root:root -R /opt/module
将hadoop1中/etc/profile文件拷贝到hadoop2的/etc/profile上。
[root@hadoop1 ~]$ scp /etc/profile root@hadoop2:/etc/profile
注意:拷贝过来的配置文件别忘了source一下/etc/profile,。
3、rsync 远程同步工具
rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync和scp区别:
用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。
scp是把所有文件都复制过去
基本语法
rsync -rvl pdir/pdir/pdir/fname user@hadoopuser@hadoopuser@hadoophost:pdir/pdir/pdir/fname
命令 选项参数 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
选项参数说明
案例实操
把hadoop1机器上的/opt/software目录同步到hadoop2服务器的root用户下的/opt/目录
[root@hadoop1 opt]$ rsync -rvl /opt/software/ root@hadoop2:/opt/software
4、xsync集群分发脚本
需求:循环复制文件到所有节点的相同目录下
需求分析:
(a)rsync命令原始拷贝:
rsync -rvl /opt/module root@hadoop103:/opt/
(b)期望脚本:
xsync要同步的文件名称
(c) 说明:在/usr/local/bin这个目录下存放的脚本,其他用户可以在系统任何地方直接执行。
脚本实现
(a)在/usr/local/bin目录,并在bin目录下xsync创建文件,文件内容如下:
[root@hadoop2 bin]$ touch xsync
[root@hadoop2 bin]$ vi xsync
在该文件中编写如下代码
#!/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=3; host<5; host++)); do
echo ------------------- hadoop$host --------------
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
(b)修改脚本 xsync 具有执行权限
[root@hadoop2 bin]$ chmod 777 xsync
(c)调用脚本形式:xsync 文件名称
[root@hadoop2 bin]$ xsync /usr/local/bin
注意:如果将xsync放到/home/用户/bin目录下仍然不能实现全局使用
可以将xsync移动到/usr/local/bin目录下。