linux文件分发工具
在 hadoop 集群操作中,经常需要在集群中的机器之间进行文件的拷贝,文件的同步等 工作。linux 中通过下面的一些指令、方法来实现这一功能。
1. scp-安全拷贝
安全拷贝指令 即 secure copy
,是 linux 上基于 ssh 的一种机器与机器之间的文件拷贝指令。
1 | -r 表示递归拷贝 两个参数第一个为本地地址、文件; 第二个为目标机器用户,机器名,粘贴地址 |
实例操作:将 master 上的 /opt/module 目录下的软件拷贝到 slave1 上。
1 | 在 master 上执行 -- 这里 slave1 的用户是 root,因为 /opt 只有 root 用户才有写权限 |
拷贝完毕后,来到 slave2 和 slave3 机器上,修改 文件夹的所有者权限。
1 | -R 表示递归修改,一定不能忘记!! |
然后,拷贝 /etc/profile
文件,配置环境变量。
1 | 在 master 机器上执行 |
2. rsync- 远程同步工具
不同于 scp
, rsync
指令 只对区别文件进行跟新。主要用于备份和镜像,由于只更新差异文件,所以速度快。
1 | -r 递归, -v 显示复制过程,-l 拷贝符号链接 |
需要注意的是,在所有的机器上必须都已经安装了 rsync
程序,如果没有安装,可以通过 yum install rsync -y
(refLink), 即可以安装 rsync
。
3. 集群分发脚本
为了更加方便地将集群上某一台机器上更新的内容快速分发到集群的其他主机上,可以新建一个脚本,实现该功能。具体操作如下。
在 /home/lab1/bin
目录下 添加脚本。
note: 注意查看一下是否 /home/lab1/bin
在 path 中: echo $PATH
。
然后,将下列内容复制到 xsync
文件中。(作用:循环复制文件到所有结点的相同目录下。)
1 | pcount=$# |
复制完毕后,赋予该文件可执行权限。 chmod 777 xsync
。
再执行 xsync /home/lab1/bin
即可将更新内容分发到所有的 slave机器上。