CSDN话题挑战赛第2期
参赛话题:学习笔记

目录

前言

问题

解决办法:

测试:

启动成功:

查看状态

关闭服务:


前言

因为zookeeper服务器多,每一次启动、关闭和查看状态都很麻烦,所以通过shell脚本启动zookeeper集群,写完的脚本如下:

#!/bin/bash


case $1 in
"start") {
        for i in hadoop100 hadoop101 hadoop102
        do
                echo ----------------zookeeper $i 启动---------------------
                ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
        done
}
;;
"stop") {
        for i in hadoop100 hadoop101 hadoop102
        do
                echo ----------------zookeeper$i 关闭---------------------

                ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
        done
}
;;
"status") {
        for i in hadoop100 hadoop101 hadoop102
        do
                echo ----------------zookeeper $i 状态---------------------
                ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
        done
}
;;
esac

问题

通过脚本开启三台服务器却报了以下错误:

[root@hadoop100 bin]# zk.sh start
----------------zookeeper hadoop100 启动---------------------
root@hadoop100's password: 
Error: JAVA_HOME is not set and java could not be found in PATH.
----------------zookeeper hadoop101 启动---------------------
root@hadoop101's password: 
Error: JAVA_HOME is not set and java could not be found in PATH.
----------------zookeeper hadoop102 启动---------------------
root@hadoop102's password: 
Error: JAVA_HOME is not set and java could not be found in PATH.

解决办法:

在zookeeper安装包下的bin目录中添加上JAVA_HOME,配置上自己对应的jdk路径即可:

测试:

 启动成功:

[root@hadoop100 bin]# zk.sh start
----------------zookeeper hadoop100 启动---------------------
root@hadoop100's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
----------------zookeeper hadoop101 启动---------------------
root@hadoop101's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
----------------zookeeper hadoop102 启动---------------------
root@hadoop102's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

查看状态

[root@hadoop100 bin]# zk.sh status
----------------zookeeper hadoop100 状态---------------------
root@hadoop100's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower
----------------zookeeper hadoop101 状态---------------------
root@hadoop101's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: leader
----------------zookeeper hadoop102 状态---------------------
root@hadoop102's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: follower

关闭服务:

[root@hadoop100 bin]# zk.sh stop
----------------zookeeperhadoop100 关闭---------------------
root@hadoop100's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
----------------zookeeperhadoop101 关闭---------------------
root@hadoop101's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
----------------zookeeperhadoop102 关闭---------------------
root@hadoop102's password: 
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED

问题解决完毕!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐