复制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 指定排除不需要传输的文件模式