详解Hadoop 运行环境搭建过程(3)


[scq@hadoop001 /]$ scp -r /opt/module/* scq@hadoop002:/opt/module

(b)将 hadoop001 服务器上的/opt/module 目录下的软件拷贝到 hadoop003 上。

scq@hadoop003 opt]$ scp -r scq@hadoop101:/opt/module/* hadoop003:/opt/module

(c)在 hadoop003 上操作将 hadoop001 中/opt/module 目录下的软件拷贝到hadoop004 上。

[scq@hadoop003 opt]$ scp -r scq@hadoop001:/opt/module/* scq@hadoop004:/opt/modul

注意一点:

1.用户@主机名:地址,在该主机中,这个用户必须读地址有读权限

2.路径后面记得带*号

2)rsync 远程同步工具

主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。
rsync 和 scp 区别: 用 rsync 做文件的复制要比 scp 的速度快, rsync 只对差异文件做更新。 scp 是把所有文件都复制过去。

(1)查看 rsync 使用说明

man rsync | more

(2)基本语法

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

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

(3) 选项说明

选项 功能
-r 递归
-v 显示复制过程
-l 拷贝符号连接

(4)案例实操

把本机/opt/software 目录同步到 hadoop002 服务器的 root 用户下的/opt/目录

[scq@hadoop001 opt]$ rsync -rvl /opt/software/* hadoop102:/opt/software/

3)rsync 远程同步工具

脚本需求分析:循环复制文件到所有节点的相同目录下。
(1)原始拷贝:

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

(2)期望脚本:

xsync 要同步的文件名称
(3)在/home/atguigu/bin 这个目录下存放的脚本, atguigu 用户可以在系统任何地方直接执行。

#!/bin/bash#1 获取输入参数个数,如果没有参数,直接退出pcount=$#if((pcount==0)); then echo no args;exit;fi#2 获取文件名称p1=$1fname=`basename $p1`echo fname=$fname#3 获取上级目录到绝对路径pdir=`cd -P $(dirname $p1); pwd`echo pdir=$pdir#4 获取当前用户名称user=`whoami`#5 循环for((host=2; host<4; host++)); doecho --------------------- hadoop00$host ----------------rsync -rvl $pdir/$fname $user@hadoop00$host:$pdirdone

注1 对于dirname,记住一下几个场景

输入:dirname // 结果为 /(斜杠)。

输入:dirname /a/b/ 结果为:/a。输入:dirname a 结果为 . (点)。

输入:dirname a/b 结果为路径名 a

.即当前目录,所以脚本中的代码我们使用绝对路径和相对路径都是可行的

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1545.html