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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA高并发编程「建议收藏」

    JAVA高并发编程「建议收藏」synchronized关键字同步方法同步代码块锁的底层实现锁的种类volatile关键字wait¬ifyAtomicXxx类型组CountDownLatch门闩锁的重入ReentrantLock同步容器Map/SetListQueueThreadPool&amp;ExecutorExecutorExecutorServiceFuture…

    2022年5月19日
    31
  • Excel中的sumifs_理解和懂得的区别

    Excel中的sumifs_理解和懂得的区别SUMIF函数和SUMIFS函数都是EXCEL常用函数之一,同时这二个函数都是条件求和,只不过SUMIF函数是单条件求和,SUMIFS函数是多条件求和,其语法结构也是不同的。希望通过本经验能够使大家对

    2022年8月5日
    3
  • 0 full gc时cpu idle_【cpuidle】计算每个cpu进入idle的时间

    0 full gc时cpu idle_【cpuidle】计算每个cpu进入idle的时间参考内核文档 Supportingmu sys devices system cpu cpuidleThecu

    2025年6月9日
    0
  • activity详解_activity教程

    activity详解_activity教程前言Activity可以获取运行中的应用信息,可以获取到servcie,process,app,memory信息等。获取信息ActivityManager.MemoryInfoMemoryInfo中重要的字段:availMem(系统可用内存),totalMem(总内存),threshold(低内存阈值,即低内存的临界线),lowMemory(是否为低内存状态)Debug.M…

    2022年9月7日
    0
  • 无线基础知识

    无线基础知识一、WIFI发展历程:二、调制:所谓调制,就是将电信号转换为无线电波的过程,反之则称为解调,其核心技术是调制方式,调制方式越高阶,转换过程中数据密度就越高。调制方式决定每个子载波能传输多少数据,

    2022年7月1日
    25
  • pstack 与 strace[通俗易懂]

    pstack 与 strace[通俗易懂]strace  strace是可以记录程序系统调用的一个工具,它可以记录该程序系统调用的各个延时情况。-c统计每一系统调用的所执行的时间,次数和出错的次数等.-d输出strace关于标准错误的调试信息.-f跟踪由fork调用所产生的子进程.-ff如果提供-ofilename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.-F尝试跟踪vf…

    2022年9月14日
    0

发表回复

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

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