zookeeper 脚本 zkServer.sh zkCli.sh zkCleanup.sh zkEnv.sh 详解(二)

zkEnv.sh 脚本比较重要 重要的一些变量都可以在这里面直接进行修改配置




</pre><pre name="code" class="html">#!/bin/sh

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script should be sourced into other zookeeper
# scripts to setup the env variables

# We use ZOOCFGDIR if defined,
# otherwise we use /etc/zookeeper
# or the conf directory that is
# a sibling of this script's directory
if [ "x$ZOOCFGDIR" = "x" ]
then
    if [ -d "/etc/zookeeper" ]
    then
        ZOOCFGDIR="/etc/zookeeper"
    else
        ZOOCFGDIR="$ZOOBINDIR/../conf"
    fi
fi

判断ZOOCFGDIR是否为空 如果为空的话
判断/etc/zookeeper是否存在并且是一个目录
如果是的设置zookeeper的配置目录为/etc/zookeeper
否则的话设为$ZOOBINDIR/../conf 在已入zkEvn.sh文件之前变量 ZOOBINDIR已经设置值了】

通常如果我们想运行其他地方的配置文件,需要单独定义变量ZOOCFGDIR 如果不定义这个变量 就需要指定配置文件的绝对路径
如:./zkServer.sh  start /home/web/conf/zoo.cfg


if [ "x$ZOOCFG" = "x" ]
then
    ZOOCFG="zoo.cfg"
fi

ZOOCFG="$ZOOCFGDIR/$ZOOCFG"
配置zookeeper配置文件的绝对路径 
如果不改动配置文件的位置 这个绝对路径就是%ZK_HOME%/bin/zoo.cfg

if [ -e "$ZOOCFGDIR/java.env" ]
then
    . "$ZOOCFGDIR/java.env"
fi
配置java运行时环境

if [ "x${ZOO_LOG_DIR}" = "x" ]
then
    ZOO_LOG_DIR="."
fi
配置zookeeper 日志目录和该脚本在同级目录 下会创建一个zookeeper.out的日志输出文件

if [ "x${ZOO_LOG4J_PROP}" = "x" ]
then
    ZOO_LOG4J_PROP="INFO,CONSOLE"
fi

配置log4j 的log级别
if [ "$JAVA_HOME" != "" ]; then
  JAVA="$JAVA_HOME/bin/java"
else
  JAVA=java
fi
配置jdk
#add the zoocfg dir to classpath
CLASSPATH="$ZOOCFGDIR:$CLASSPATH"

for i in "$ZOOBINDIR"/../src/java/lib/*.jar
do
    CLASSPATH="$i:$CLASSPATH"
done


#make it work in the release
for i in "$ZOOBINDIR"/../lib/*.jar
do
    CLASSPATH="$i:$CLASSPATH"
done

#make it work in the release
for i in "$ZOOBINDIR"/../zookeeper-*.jar
do
    CLASSPATH="$i:$CLASSPATH"
done

#make it work for developers
for d in "$ZOOBINDIR"/../build/lib/*.jar
do
   CLASSPATH="$d:$CLASSPATH"
done

<pre name="code" class="html">引入zookeeper的相关jar包文件
#make it work for developersCLASSPATH="$ZOOBINDIR/../build/classes:$CLASSPATH"case "`uname`" in CYGWIN*) cygwin=true ;; *) cygwin=false ;;esacif $cygwinthen CLASSPATH=`cygpath -wp "$CLASSPATH"`fi

如果你的zookeeper运行在windows下的UNIX模拟环境cygwin需要关心以上的配置

#echo "CLASSPATH=$CLASSPATH"

你可能感兴趣的:(zookeeper 脚本 zkServer.sh zkCli.sh zkCleanup.sh zkEnv.sh 详解(二))