hbase:用于实现版本文件及配置同步的两个shell脚本

落爺英雄遲暮 提交于 2020-04-07 03:26:15

复制master节点上的版本内容到所有slaves节点上

注意:

    1:版本目录做了软链接,如 ln -s hbase-0.94.6 hbase

    2: 要根据实际情况,将/usr/local/修改为hbase所在的目录

#!/bin/bash
# copy a new release of HBase from the masternode to all slave nodes
# Rsyncs HBase files across all slaves. Must run on master.
# Assumes all files are located in /usr/local
if [ "$#" != "2" ]; then
        echo "usage: $(basename $0) <dir-name> <ln-name>"
        echo " example: $(basename $0) hbase-0.1 hbase"
        exit 1
fi

SRC_PATH="/usr/local/$1/conf/regionservers"

for srv in $(cat $SRC_PATH); do
        echo "Sending command to $srv...";
        rsync -vaz --exclude='logs/*' /usr/local/$1 $srv:/usr/local/
        ssh $srv "rm -fR /usr/local/$2 ; 
        ln -s /usr/local/$1 /usr/local/$2"
done
echo "done."

同步master节点上的配置文件到所有region servers

注意:

     1:版本目录做了软链接,如 ln -s hbase-0.94.6 hbase

    2: 要根据实际情况,将/usr/local/修改为hbase所在的目录

#!/bin/bash
# Rsync's HBase config files across all region servers. Must run on master.
for srv in $(cat /usr/local/hbase/conf/regionservers); do
	echo "Sending command to $srv...";
	rsync -vaz --delete --exclude='logs/*' /usr/local/hadoop/ $srv:/usr/local/hadoop/
	rsync -vaz --delete --exclude='logs/*' /usr/local/hbase/ $srv:/usr/local/hbase/
done
echo "done."

rsync命令简介

    Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。

工作模式

rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]

使用参数说明

-v, --verbose 详细模式输出

-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD

-z, --compress 对备份的文件在传输时进行压缩处理

--delete 删除那些DST中SRC没有的文

--exclude=PATTERN 指定排除不需要传输的文件模式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!