centos7搭建hadoop集群之rsync和xsync[通俗易懂]

centos7搭建hadoop集群之rsync和xsync[通俗易懂]文章记录于各个服务器(或者虚拟机等)已经配置了ssh免密登录,可执行下面操作,未配置ssh免密登录,可参考:https://blog.csdn.net/yhblog/article/details/84029535此文章是基于centos7minimal版本的,纯净系统,所以还需要安装rsync工具(确保所有节点都必须安装rsync)否则报错:安装成功:启动rsync服务sys…

大家好,又见面了,我是你们的朋友全栈君。

文章记录于各个服务器(或者虚拟机等)已经配置了ssh免密登录,可执行下面操作,未配置ssh免密登录,可参考:https://blog.csdn.net/yhblog/article/details/84029535


此文章是基于centos7minimal版本的,纯净系统,所以还需要安装rsync工具(确保所有节点都必须安装rsync)
否则报错:
在这里插入图片描述

安装成功:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动rsync服务
systemctl start rsyncd.service
systemctl enable rsyncd.service

运行结果:
在这里插入图片描述


rsync(remote synchronization):意为把本机上的文件或者目录远程同步到其他服务器,通过过程中只会把需要同步的文件与远程服务器上的存放目录做对比(如果存在相同的文件或者目录会进一步比较其中的内容),远程服务器上没有的或者内容不同的才会同步过去,远程服务器上原来就有的也原封不动的存在

  • 原始操作命令: rsync -rvl local_file_path remote_username@remote_ip:remote_file_path
    注:remote_username为远程服务器上的在线用户,remote_ip可以换做主机名,前提是本机和远程服务器做了hosts映射

如:rsync -rvl /opt/module york@192.168.221.129:/opt/module
注:rsync -rvl 后面可以跟相对路径和绝对路径,但如果使用相对路径需要先进入到填写的路径的父目录(最好使用绝对路径)
在这里插入图片描述

  • 使用xsync脚本循环同步文件到各个目标节点的相同目录下(需要用户具有root权限或者直接使用root用户创建xsync)
    1.sudo创建xsync文件(root用户可直接创建)
    在这里插入图片描述
    2.创建需要同步测试的文件(分发到主机hadoop2和hadoop3)
    在这里插入图片描述
    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='d -P $(dirname $p1); pwd'
echo pdir=$pdir

#4 获取当前用户名称
user='whoami'

#5 循环,这里host根据自己的节点数和主机名设置
for((host=2; host<4; host++)); do
        #echo $pdir/$fname $user@hadoop$host:$pdir
        echo --------------- hadoop$host ----------------
        rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done
  • 执行脚本
    在这里插入图片描述
  • 必须更改读写权限(使用sudo也不行)
    在这里插入图片描述
  • 执行成功(用root身份使用xsync命令,这里需要一次输入各个目标节点(需要分发文件的服务器)的root密码才能实现发送)
    在这里插入图片描述
    其他节点查看文件:
    在这里插入图片描述
    在这里插入图片描述
    注意:
  • 1.确保各个节点都安装了rsync工具并启动(针对minimal版本,因为此版本任何工具都需手动安装),可参考:https://blog.csdn.net/cdnight/article/details/78861543

  • 2.xsync用root用户执行时,在执行过程中需要输入其他节点的root用户密码,过于繁琐,可事先给本机root用户配置ssh,通过ssh-copy-id到其他节点,实现免密登录,然后执行xsync命令就不需要输入其他各个节点的root用户密码了,可参考:https://blog.csdn.net/yhblog/article/details/84029535
    下图是具有root权限的york用户,对york用户配置了ssh,可以直接执行不用输入其他用户密码:(如果除了root用户,其他用户不能执行xsync命令,就切换到root用户执行
    在这里插入图片描述
    在这里插入图片描述

  • rsync可以将文件远程同步到其他节点的特定目录下,而xsync一般是将本机上的文件所在目录位置远程同步到其他节点相同的目录下,不过上面xsync源码可以更改存放路径,如:本机文件位置是/opt/software/demo.txt,那么远程同步后,其他节点接收文件后的存放位置也是/opt/software,然后/opt/software目录有刚同步的文件demo.txt
    在这里插入图片描述
  • 3.远程同步后其他节点接收文件后,此文件的使用权限是root,其他用户必须具有root权限或者更改文件的使用权限,因为使用xsync命令时是root用户使用的(这是取决于上面脚本的内容,脚本里面取了user变量值,其他目标节点都有一个共同的用户,便于执行操作

    在这里插入图片描述
    比如下面是york用户使用的,则远程同步后文件的使用权限是york(当然,root具有最高权限,也可以操作任何文件):
    在这里插入图片描述
    在这里插入图片描述
    远程同步后各个目标节点接收文件后所属者:
    在这里插入图片描述
    在这里插入图片描述
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137184.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网站可以免费做业务CMS讨论[亲测有效]

    网站可以免费做业务CMS讨论

    2021年12月17日
    61
  • 新年放大招:Github 私库免费了!

    新年放大招:Github 私库免费了!据《Github嫁入豪门》这篇文章刚好半年了,那时候栈长还表示对Github的期待,仅仅半年,现在就已经有了巨大改变。微软果然是豪门,嫁入半年就已经开花结果了,免费私库已全面无限制开启……我们来看下Github的官宣:Newyear,newGitHub:AnnouncingunlimitedfreeprivatereposandunifiedEnterpr…

    2022年7月18日
    17
  • 一键生成H5_h5生成器

    一键生成H5_h5生成器H5模板代码一键生成器2021-01技术交流或商业合作:QQ(591033633)微信(15858293899)演示地址见文中目录1、功能介绍22、准备工作53、演示地址及步骤53.1、后台数据接口图形化定义63.2、后台数据接口线上调试63.3、前端页面模板定义73.4、生成页面demo解析11功能介绍笔者作为多年的资深开发,深知调试前端UI是后端开发人员最惧怕的事,并且厌倦了无止境的Ctrl+C和Ctrl+V工作…

    2022年9月6日
    4
  • JRebel 热部署插件的安装使用

    JRebel 热部署插件的安装使用文章目录Jrebel简介JRebel的安装和使用idea安装JRebelJRebel的使用JRebel的激活Jrebel简介  当你修改doGet,doPost等一些内容时,你再次访问,访问到的内容不变,除非重启或重新加载class文件。  用Jrebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel的安装和使用idea安装JRebelNew->settings->plugins->Marketplace搜索插件jrebel进行安装或

    2022年5月22日
    35
  • js刷新当前页面的5种方式

    js刷新当前页面的5种方式强制刷新当前页面1、reload –强迫浏览器刷新当前页面location.reload([bForceGet])//重新加载当前文档bForceGet,可选参数,默认为false,

    2022年6月30日
    46
  • JSP和MySQL连接

    JSP和MySQL连接

    2021年6月19日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号