code学习

大数据常用shell脚本之zk脚本

一、前置准备

CentOS7、jdk1.8、zookeeper-3.5.7

想要完成本期视频中所有操作,需要以下准备:

Zookeeper单机环境和集群环境搭建视频+图文教程

Hadoop完全分布式集群环境搭建-视频教程

大数据常用shell脚本之分发脚本编写-视频教程

二、简单了解

  • 登录式 Shell, 采用用户名密码,比如 xiaokang 登录, 会自动加载

    /etc/profile

  • 非登录式 Shell, 采用 ssh 比如 ssh hadoop02 登录, 不会自动加载

    /etc/profile

    , 会自动加载

    ~/.bashrc

大数据常用shell脚本之zk脚本

想要通过非登录式 Shell 来使用其它节点的环境变量就需要做以下操作:

# 1.将当前节点的/etc/profile中已经配置好的环境变量复制到/etc/profile.d/env.sh(此文件需要手动创建)
[[email protected] bin]$ sudo vim /etc/profile.d/env.sh

export JAVA_HOME=/opt/moudle/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export HADOOP_HOME=/opt/software/hadoop-2.7.7
export ZOOKEEPER_HOME=/opt/software/zookeeper-3.5.7
export HIVE_HOME=/opt/software/hive-2.3.6
export HBASE_HOME=/opt/software/hbase-1.4.13
export KYLIN_HOME=/opt/software/kylin-3.0.1
export KAFKA_HOME=/opt/software/kafka-2.1.0
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
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:$PATH

# 2.分发至各个节点
[[email protected] ~]$ distribution.sh /etc/profile.d/env.sh
           

三、脚本源码

#!/bin/bash

#作者:小康
#描述:zookeeper集群启动/停止/查看状态脚本
#微信公众号:小康新鲜事儿

USAGE="使用方法:sh zk.sh start/stop/status"
if [ $# -ne 1 ];then
        echo $USAGE
        exit 1
fi
NODES=("hadoop01" "hadoop02" "hadoop03")
ZOOKEEPER_HOME=/opt/software/zookeeper-3.5.7
case $1 in
"start")
        for NODE in ${NODES[*]};do
                echo "--------$NODE启动zookeeper--------"
                ssh $NODE "$ZOOKEEPER_HOME/bin/zkServer.sh start"
        done
        ;;
"stop")
        for NODE in ${NODES[*]};do
                echo "--------$NODE停止zookeeper--------"
                ssh $NODE "$ZOOKEEPER_HOME/bin/zkServer.sh stop"
        done
        ;;
"status")
        for NODE in ${NODES[*]};do
                echo "--------$NODE查看zookeeper状态--------"
                ssh $NODE "$ZOOKEEPER_HOME/bin/zkServer.sh status"
        done
        ;;
*)
        echo $USAGE
        ;;
esac
echo "----------------------------------------------------------------------------------------"
echo "--------zk.sh脚本执行完成!--------"
echo -e "--------微信公众号:\033[5;31m 小康新鲜事儿 \033[0m--------"
echo "--------小康老师微信:k1583223--------"
echo "--------公众号内回复【大数据】,获取系列教程及随堂文档--------"
echo "----------------------------------------------------------------------------------------"
           

脚本下载地址:https://github.com/xiaokangxxs/notebook/blob/master/docs/Shell/zk.sh

四、测试使用

# 修改脚本权限
[[email protected] bin]$ chmod 777 zk.sh
           

执行方式:

# 方式一
[[email protected] bin]$ ./zk.sh start
# 方式二
[[email protected] bin]$ sh zk.sh start
# 方式三
# 1.将shell脚本所在目录配置为环境变量(/etc/profile),记得source生效
export SHELL_HOME=/home/xiaokang/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脚本
[[email protected] ~]$ zk.sh start
           

使用脚本进行启动和查看状态测试,成功如下图所示:

大数据常用shell脚本之zk脚本