大数据环境部署之分发脚本

安装依赖

1
yum install -y rsync

创建脚本

创建脚本

1
2
mkdir /data/tools/bigdata/mysh/
vi /data/tools/bigdata/mysh/ha-fenfa.sh

增量同步

内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash

#集群节点间文件或文件夹分发脚本
USAGE="使用方法:sh ha-fenfa.sh /home/test.txt or sh ha-fenfa.sh /data/tools/bigdata/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 -e "--------\033[5;32m $PDIR/$FDNAME 分发完成! \033[0m--------"
echo "----------------------------------------------------------------------------------------"

修改权限

1
chmod 777 /data/tools/bigdata/mysh/ha-fenfa.sh

镜像同步

1
rsync -avzP --delete $FLINK_HOME/lib root@hadoop02:$FLINK_HOME

上面的脚本可改为

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash

#集群节点间文件或文件夹分发脚本
USAGE="使用方法:sh ha-fenfa.sh /home/test.txt or sh ha-fenfa.sh /data/tools/bigdata/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 -avzP --delete $PDIR/$FDNAME $USER@$NODE:$PDIR
done
echo "----------------------------------------------------------------------------------------"
echo -e "--------\033[5;32m $PDIR/$FDNAME 分发完成! \033[0m--------"
echo "----------------------------------------------------------------------------------------"

配置环境变量

添加环境变量

1
cd /etc/profile.d/

创建配置文件

1
vi /etc/profile.d/mysh.sh

加入:

1
2
export MYSH_HOME=/data/tools/bigdata/mysh/ 
export PATH=$MYSH_HOME:$PATH

配置立即生效

1
source /etc/profile

查看MYSH_HOME

1
echo $MYSH_HOME

使用

注意

分发前要保证目标所在路径的父路径是存在的

目标安装rsync

1
2
ssh hadoop02 "yum install -y rsync"
ssh hadoop03 "yum install -y rsync"

目标创建文件夹

1
2
ssh hadoop02 "mkdir -p /data/tools/bigdata/"
ssh hadoop03 "mkdir -p /data/tools/bigdata/"

分发Zookeeper

1
ha-fenfa.sh $ZK_HOME

分发Hadoop

1
ha-fenfa.sh $HADOOP_HOME

分发Flink

1
ha-fenfa.sh $FLINK_HOME

分发配置文件

1
2
3
ha-fenfa.sh /etc/profile.d
ssh hadoop02 "source /etc/profile"
ssh hadoop03 "source /etc/profile"

Bash文字样式

示例

1
2
3
echo -e "\E[31;43m\033[4m 我是文字 \033[0m"

echo -e "--------\033[5;32m 分发完成! \033[0m--------"

首先解释\E[\033[m

  • \E[m之间是颜色的控制字符串

    3是前景色控制,后面跟的是颜色值(0-9),

    4是背景色控制,后面跟的是颜色值(0-9),

    前景色和背景色设定之间使用;分隔开。

  • \033[m之间是样式控制串

    \033[后面跟样式值(上面的例子中是4表示下划线),

    接着是要彩色显示的文字串

  • 设置结束标志\033[0m

前景色和背景色的颜色对应的编号(0-9)

  • 0 black
  • 1 red
  • 2 green
  • 3 yellow
  • 4 blue
  • 5 magenta(洋红色)
  • 6 cyan(青色)
  • 7 gray
  • 8 white
  • 9 white

样式控制数字编号为(1-9)

  • 1 淡些、粗些
  • 4 下划线
  • 5 在CentOS上没效果 在Ubuntu上是闪烁
  • 7 反相(颠倒前景色和背景色)
  • 9 删除线
  • 2,3,6,8 正常