一、前置准备
CentOS7、jdk1.8、zookeeper-3.5.7
想要完成本期视频中所有操作,需要以下准备:
Zookeeper单机环境和集群环境搭建视频+图文教程
Hadoop完全分布式集群环境搭建-视频教程
大数据常用shell脚本之分发脚本编写-视频教程
二、简单了解
- 登录式 Shell, 采用用户名密码,比如 xiaokang 登录, 会自动加载
/etc/profile
- 非登录式 Shell, 采用 ssh 比如 ssh hadoop02 登录, 不会自动加载
, 会自动加载/etc/profile
~/.bashrc

想要通过非登录式 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
使用脚本进行启动和查看状态测试,成功如下图所示: