rsync和xsync文件同步命令的安装和部署

本文介绍了如何安装rsync服务,并编写名为xsync的自定义文件同步shell脚本,该脚本利用rsync命令实现文件同步。详细步骤包括:通过yum安装rsync,启动并设置开机启动rsync服务,以及在/root/bin下创建并赋予执行权限的xsync脚本的编写和测试过程。

xsync命令是自己编写文件同步命令shell脚本,其中调用的是rsync命令

1、rsync的安装

每台机器都需要运行下面的命令:
安装:

yum install rsync;

启动服务以及开机自启动:

systemctl start rsyncd.service
systemctl enable rsyncd.service

2、编写xsync脚本

2.1、首先执行:

echo $PATH
在这里插入图片描述

我这里直接使用的是root用户所以在/root/bin下的脚本可以在任意位置执行,所以编写的xsync脚本就创建在这个目录下面:
在这里插入图片描述2.2、创建xsync文件
然后将下面的代码复制进刚刚创建的xsync文件,然后根据自己的节点进行修改:

   #!/bin/bash
   #1 获取输入参数个数,如果没有参数,直接退出
   pcount=$#
   if((pcount==0)); then
   echo no args;
   exit;
   fi
   
   #2 获取文件名称
  p1=$1
  fname="$p1"
  echo fname=$fname
  
  #3 获取上级目录到绝对路径
  #pdir=$(dirname $(pwd))
  pdir=`cd -P $(dirname $p1); pwd`
  #pdir=$(pwd)
  #pdir=$(cd -P $dirname p1; pwd)
  #pdir= $(pwd)
  echo pdir=$pdir
 
  
  #4 获取当前用户名称
  user=`whoami`
  
  #5 循环,这里host根据自己的节点数和主机名设置
  for i in slave1 slave2; do
          echo $pdir/$fname $user@$i:$pdir
          echo --------------- $i ----------------
          rsync -rvl $pdir/$fname $user@$i:$pdir
  done

2.3、加上执行权限:

chmod 777 xsync

2.4、测试:
在任意文件夹下,运行同步脚本文件xsync:
在这里插入图片描述

<think>嗯,用户想知道如何在不使用xsync的情况下将Spark的standalone模式部署到work1work2这两个工作节点上。首先,我需要回忆一下,xsync通常是一个同步脚本,用来将文件分发到多个节点,可能基于rsync或者scp。如果用户不想用这个工具,可能需要手动用其他方法替代。 首先,用户可能需要将Spark的安装包或者编译好的目录分发到work1work2。常见的替代方法可能有scp或者rsync命令直接使用,而不是通过封装好的xsync脚本。但用户可能不太清楚具体的步骤,或者希望更详细的指导。 接下来,要考虑步骤的合理性。通常部署Spark的standalone集群需要将Spark主节点的安装目录复制到各个工作节点,并确保配置正确。比如,在Spark的conf目录下的workers文件中添加work1work2,然后启动集群。不过如果用户没有配置workers文件,可能需要手动在每个节点启动worker进程。 用户可能已经配置了SSH免密登录到work1work2,这是前提条件,否则每次scp或ssh都需要输入密码,比较麻烦。所以在回答中可能需要提醒用户确保SSH配置正确。 然后,分发的具体步骤:可能需要用scp命令将整个Spark目录复制到各个工作节点。例如,使用scp -r /path/to/spark user@work1:/target/path,同样对work2执行。或者使用rsync命令,这可能更高效,特别是如果以后需要更新文件的话。 另外,可能需要检查各个节点的环境变量,比如JAVA_HOME是否正确设置,SPARK_HOME是否配置,这些可能影响Spark的正常运行。此外,各个节点上的目录结构最好保持一致,避免路径问题。 还有,配置Spark的conf/spark-env.sh文件,可能需要指定主节点的IP地址,以及一些内存、核心的设置。这些配置也需要同步到各个节点,所以分发整个conf目录可能也是必要的。 用户可能的问题还包括如何启动集群,所以在回答中可能需要包括启动masterworkers的步骤,比如在主节点运行sbin/start-master.sh,然后在各个工作节点运行sbin/start-worker.sh <master-url>,或者在workers文件中配置好后,使用sbin/start-workers.sh。 另外,如果用户之前依赖xsync来自动同步,现在手动操作的话,可能需要写一个简单的循环脚本,遍历work1work2,执行scp或者rsync命令。比如,在bash中使用for循环,遍历节点列表,执行复制命令。这样即使不用xsync,也能简化操作。 最后,验证步骤,比如检查各个节点上的Spark目录是否存在,配置文件是否正确,以及启动后能否在Spark的Web UI中看到work1work2作为工作节点出现。 总结一下,步骤大致包括:确保SSH免密登录、使用scp或rsync手动复制Spark目录到各个节点、配置workers文件环境变量、启动集群进程。同时需要提醒用户注意路径一致性防火墙设置等问题。</think>### 不使用 `xsync` 分发 Spark Standalone 到 work1 work2 的步骤 #### 1. **准备工作** - **确保 SSH 免密登录** 手动分发需要从主节点通过 `scp` 或 `rsync` 传输文件,需提前配置主节点到 `work1` `work2` 的 SSH 免密登录: ```bash ssh-keygen -t rsa ssh-copy-id user@work1 ssh-copy-id user@work2 ``` - **统一安装路径** 确保所有节点(包括主节点、work1、work2)的目标路径一致,例如 `/opt/spark`。 --- #### 2. **手动分发 Spark 文件** - **使用 `scp` 命令逐节点复制** 将本地 Spark 安装目录同步到 `work1` `work2`: ```bash scp -r /opt/spark user@work1:/opt/ scp -r /opt/spark user@work2:/opt/ ``` - **说明**:`-r` 表示递归复制目录,需确保目标路径 `/opt` 存在。 - **(可选)使用 `rsync` 高效同步** 若需后续增量更新文件,可用 `rsync` 替代 `scp`: ```bash rsync -av /opt/spark user@work1:/opt/ rsync -av /opt/spark user@work2:/opt/ ``` --- #### 3. **配置 Spark 环境** - **修改 `conf/workers` 文件** 在主节点的 Spark 配置目录 `conf/` 中,添加工作节点主机名: ```plaintext work1 work2 ``` - **同步配置文件到所有节点** 将更新后的 `conf/` 目录重新分发到 work1 work2: ```bash scp -r /opt/spark/conf user@work1:/opt/spark/ scp -r /opt/spark/conf user@work2:/opt/spark/ ``` - **检查环境变量** 确保所有节点的 `JAVA_HOME` `SPARK_HOME` 已配置(例如在 `/etc/profile` 中): ```bash export JAVA_HOME=/path/to/java export SPARK_HOME=/opt/spark export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin ``` --- #### 4. **启动 Spark Standalone 集群** - **在主节点启动 Master** ```bash $SPARK_HOME/sbin/start-master.sh ``` 记录 Web UI 地址(如 `spark://master-ip:7077`)。 - **在工作节点启动 Worker** 手动登录到 `work1` `work2`,分别执行: ```bash $SPARK_HOME/sbin/start-worker.sh spark://master-ip:7077 ``` - **(或)批量启动 Workers** 若已配置 `conf/workers` 文件,可直接在主节点运行: ```bash $SPARK_HOME/sbin/start-workers.sh ``` --- #### 5. **验证集群状态** - **访问 Master Web UI** 浏览器打开 `http://master-ip:8080`,检查 `work1` `work2` 是否已注册为 Worker。 - **命令行验证** 在主节点提交测试任务: ```bash $SPARK_HOME/bin/spark-submit --master spark://master-ip:7077 --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_*.jar 10 ``` --- ### 注意事项 1. **路径一致性**:所有节点的 Spark 安装路径需完全相同。 2. **防火墙配置**:开放端口 `7077`(Master通信)、`8080`(Web UI)、`4040`(应用监控)。 3. **权限问题**:确保 `/opt/spark` 目录的读写权限对 Spark 用户开放。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值