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

2022-11-14 14:58:12 浏览数 (2)

安装依赖

代码语言:javascript复制
yum install -y rsync

创建脚本

创建脚本

代码语言:javascript复制
mkdir /data/tools/bigdata/mysh/
vi /data/tools/bigdata/mysh/distribution.sh

内容如下

代码语言:javascript复制
#!/bin/bash

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

修改权限

代码语言:javascript复制
chmod 777 /data/tools/bigdata/mysh/distribution.sh

配置环境变量

添加环境变量

代码语言:javascript复制
cd /etc/profile.d/

创建配置文件

代码语言:javascript复制
vi /etc/profile.d/mysh.sh

加入:

代码语言:javascript复制
export MYSH_HOME=/data/tools/bigdata/mysh/ 
export PATH=$MYSH_HOME:$PATH

配置立即生效

代码语言:javascript复制
source /etc/profile

查看MYSH_HOME

代码语言:javascript复制
echo $MYSH_HOME

使用

注意

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

目标安装rsync

代码语言:javascript复制
ssh hadoop02 "yum install -y rsync"
ssh hadoop03 "yum install -y rsync"

目标创建文件夹

代码语言:javascript复制
ssh hadoop02 "mkdir -p /data/tools/bigdata/"
ssh hadoop03 "mkdir -p /data/tools/bigdata/"

分发Zookeeper

代码语言:javascript复制
distribution.sh $ZK_HOME

分发Hadoop

代码语言:javascript复制
distribution.sh $HADOOP_HOME

分发Flink

代码语言:javascript复制
distribution.sh $FLINK_HOME

分发配置文件

代码语言:javascript复制
distribution.sh /etc/profile.d
ssh hadoop02 "source /etc/profile"
ssh hadoop03 "source /etc/profile"

Bash文字样式

示例

代码语言:javascript复制
echo -e "E[31;43m33[4m 我是文字 33[0m"

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

首先解释E[33[m

  • E[m之间是颜色的控制字符串 3是前景色控制,后面跟的是颜色值(0-9), 4是背景色控制,后面跟的是颜色值(0-9), 前景色和背景色设定之间使用;分隔开。
  • 33[m之间是样式控制串 33[后面跟样式值(上面的例子中是4表示下划线), 接着是要彩色显示的文字串
  • 设置结束标志33[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 正常

0 人点赞