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目录下。

 

posted @ 2019-07-22 00:06  MrChengs  阅读(274)  评论(0编辑  收藏  举报