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"