Hadoop 中xsync集群分发脚本

Hadoop 中xsync集群分发脚本大数据集群中使用xsync脚本分发文件到集群中的所有机器

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

1.配置免密登录

2.rsync 远程同步工具

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

使用方法:

rsync    -av   $parentdir/$filename   $user@hadoop102$host:$parentdir/$filename
命令   选项参数   要拷贝的文件路径/名称     目的用户@主机:目的路径/名称

-a  归档拷贝
-v	显示复制过程

3.配置xsync集群分发脚本

在usr/local/bin目录下面创建文件xsync文件,或者在/home/用户/bin下面创建xsync文件,内容是:

#! /bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if [ $pcount -lt 1 ]
then
    echo No Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
    echo ====================    $host    ====================
    #3. 递归遍历所有目录
    for file in $@
    do
        #4 判断文件是否存在
        if [ -e $file ]
        then
            #5. 获取全路径
            pdir=$(cd -P $(dirname $file); pwd)
            echo pdir=$pdir
            
            #6. 获取当前文件的名称
            fname=$(basename $file)
            echo fname=$fname
            
            #7. 通过ssh执行命令:在$host主机上递归创建文件夹(如果存在该文件夹)
            ssh $host "source /etc/profile;mkdir -p $pdir"
            
			#8. 远程同步文件至$host主机的$USER用户的$pdir文件夹下
            rsync -av $pdir/$fname $USER@$host:$pdir
        else
            echo $file Does Not Exists!
        fi
    done
done

修改脚本的执行权限 chmod 777 xsync

脚本的使用形式:xsync /opt/temp 可以分发/opt/temp文件夹到集群中所有的目录。


zk的启动脚本:

#! /bin/bash
for host in hadoop102 hadoop103 hadoop104
do
	ssh $host "source /etc/profile;nohup zKserver.sh start > /dev/null 2>&1 &"
	echo"************ $host Zookeeper is Starting ************"
done

kafka启动脚本:

#! /bin/bash
for host in hadoop102 hadoop103 hadoop104
do
	ssh $host "source /etc/profile;nohup kafka-server-start.sh start /opt/kafka_2.11-1.0.0/config/server.properties > /dev/null 2>&1 &"
	echo"==========$host Kafka is Starting"
done

xcall.sh

#! /bin/bash

for i in hadoop102 hadoop103 hadoop104
do
        echo --------- $i ----------
        ssh $i "source /etc/profile; $*"
done

$* 为获取传递进来的变量
$@ 为获去传递进来变量的个数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

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


相关推荐

  • 怎么从电脑中的cmd进入mysql_在cmd中怎么进入mysql?

    怎么从电脑中的cmd进入mysql_在cmd中怎么进入mysql?在cmd中进入mysql的步骤:1、按win+r打开,输入cmd,快速打开命令行界面,然后进入cmd2、启动MySQL服务使用以下命令:netstartmyql3、进入mysql数据库输入以下命令:mysql-hlocalhost-uroot-p执行上面的命令后,会提示输入密码,输入密码后回车,当显示下面的界面时表示成功链接到了mysql数据库。3、输入”showdatabases”回…

    2022年5月7日
    63
  • Okio基本使用以及源码分析

    Okio基本使用以及源码分析Okio是什么在OkHttp的源码中经常能看到Okio的身影,所以单独拿出来学习一下,作为OkHttp的低层IO库,Okio确实比传统的java输入输出流读写更加方便高效。Okio补充了java.io和java.nio的不足,使访问、存储和处理数据更加容易,它起初只是作为OKHttp的一个组件,现在你可以独立的使用它来解决一些IO问题。先看下okio库中类之间的关系:okio中最关键的是对于缓存队列的管理,这些优化操作使得okio在复制数据的时候可以减少拷贝次数,来看下okio中数据保存的数据结构是

    2022年5月27日
    37
  • 在linux中安装nginx可以用哪些命令_acl配置命令

    在linux中安装nginx可以用哪些命令_acl配置命令安装前准备工作因为Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来yuminstallgcc-c++Nginx的http模块需要使用pcre来解析正则表达式,需要安装pcreyuminstall-ypcrepcre-devel安装依赖的解压包yuminstall-yzlibzlib-develssl功能需要openssl库,安装opensslyuminstall-yopensslopenssl-devel下载Ng

    2022年10月5日
    0
  • ubuntu读取can口数据_嵌入式Linux下CAN接口调试[通俗易懂]

    ubuntu读取can口数据_嵌入式Linux下CAN接口调试[通俗易懂]ByToradex秦海1).简介CAN(ControllerAreaNetwork)总线是嵌入式设备最为常用的接口之一,常用于汽车以及工业自动化等嵌入式领域,因此本文就基于嵌入式Linux演示使用CAN总线进行通讯测试。本文所演示的平台来自于ToradexColibriiMX6DL和ApalisiMX6DARM嵌入式平台,这两个平台是都是基于NXPiMX6系列ARM处理器,支持双…

    2022年6月16日
    390
  • VScode快捷键和设置

    VScode快捷键和设置一.快捷键单行注释 ctrl+/ 多行注释 alt+shift+a 复制上一行代码到下一行 alt+shift+↓ 移动代码到上一行或下一行 alt+↑,alt+↓ 返回到上次编辑位置 alt+← 跳转到指定文件 ctrl+p 全文搜索字符 ctrl+shift+f 格式化代码 shift+alt+f…

    2022年4月30日
    62
  • XXE详解

    XXE详解xxe漏洞的学习与利用总结前言对于xxe漏洞的认识一直都不是很清楚,而在我为期不长的挖洞生涯中也没有遇到过,所以就想着总结一下,撰写此文以作为记录,加深自己对xxe漏洞的认识。xml基础知识要了解xxe漏洞,那么一定得先明白基础知识,了解xml文档的基础组成。XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许…

    2022年5月10日
    55

发表回复

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

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