概述
一、前置准备
CentOS7、jdk1.8、hadoop-2.7.7
想要完成本期视频中所有操作,需要以下准备:
Hadoop完全分布式集群环境搭建-视频教程
二、简单了解
-
basename
:会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来 -
dirname
:从给定的包含绝对路径的文件名中去除文件名(非目录部分),然后返回剩下的路径(目录的部分) -
Shell数组用括号来表示,元素用空格符号分割,Shell中使用@ 或 * 可以获取数组中的所有元素
-
rsync是根据自己独特的算法,只同步有变化的文件,甚至在一个文件里只同步有变化的部分,所以可以实现快速的同步数据的功能
-v, --verbose 详细模式输出
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
三、脚本源码
#!/bin/bash
#作者:小康
#描述:集群节点间文件或文件夹分发脚本
#微信公众号:小康新鲜事儿
USAGE="使用方法:sh distribution.sh /home/xiaokangxxs.txt or sh distribution.sh /opt/software/hadoop-2.7.7"
if [ $# -ne 1 ];then
echo $USAGE
exit 1
fi
#获取需要分发的文件名或者目录名
FDNAME=$(basename $1)
#获取需要分发的文件或目录的上级目录
PDIR=$(cd -P $(dirname $1);pwd)
#获取当前使用系统的用户名
USER=$(whoami)
#需要分发到的节点
NODES=("hadoop02" "hadoop03")
#循环分发
for NODE in ${NODES[*]};do
echo "--------分发至$NODE--------"
#如果目标节点的父级目录不存在,则创建出来
ssh $NODE "
if [ -d $PDIR ];then
. /etc/profile
else
mkdir $PDIR
fi"
rsync -av $PDIR/$FDNAME $USER@$NODE:$PDIR
done
echo "----------------------------------------------------------------------------------------"
echo "--------$PDIR/$FDNAME分发完成!--------"
echo -e "--------微信公众号: 33[5;31m 小康新鲜事儿 33[0m--------"
echo "--------小康老师微信:k1583223--------"
echo "--------公众号内回复【大数据】,获取系列教程及随堂文档--------"
echo "----------------------------------------------------------------------------------------"
脚本下载地址:https://github.com/xiaokangxxs/notebook/blob/master/docs/Shell/distribution.sh
四、测试使用
# 修改脚本权限
[xiaokang@hadoop01 ~]$ chmod 777 distribution-plus.sh
执行方式:
# 方式一
[xiaokang@hadoop01 bigdata_bin]$ ./distribution-plus.sh zk.sh
# 方式二
[xiaokang@hadoop01 bigdata_bin]$ sh distribution-plus.sh zk.sh
# 方式三
# 1.将shell脚本所在目录配置为环境变量(/etc/profile),记得source生效
export SHELL_HOME=/home/xiaokang/bigdata_bin
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:${ZOOKEEPER_HOME}/bin:${HIVE_HOME}/bin:${HBASE_HOME}/bin:${KYLIN_HOME}/bin:${KAFKA_HOME}/bin:${SCALA_HOME}/bin:${SCALA_HOME}/sbin:${SPARK_HOME}/bin:${SHELL_HOME}/:$PATH
# 2.在任意目录都可以使用自己编写的shell脚本
[xiaokang@hadoop01 ~]$ distribution-plus.sh ~/bigdata_bin/zk.sh
分发/opt/software/hadoop-2.7.7/etc/hadoop/slaves
文件,进行测试,成功同步如下图所示:
最后
以上就是怡然小白菜为你收集整理的大数据常用shell脚本之分发脚本的全部内容,希望文章能够帮你解决大数据常用shell脚本之分发脚本所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复