| 截取片段执行日志如下 :果然STAT变量确实为空,导致输出Error contacting service. It is probably not  running.并且退出。 ++ grep '^[[:space:]]*clientPort[^[:alpha:]]' /app/zookeeper-3.4.6/bin/../conf/zoo.cfg + clientPort=5181 ++ grep Mode ++ /opt/jdk1.8.0_131/bin/java -Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp '/app/zookeeper-3.4.6/bin/../build/classes:/app/zookeeper-3.4.6/bin/../build/lib/*.jar:/app/zookeeper-3.4.6/bin/../lib/slf4j-log4j12-1.6.1.jar:/app/zookeeper-3.4.6/bin/../lib/slf4j-api-1.6.1.jar:/app/zookeeper-3.4.6/bin/../lib/netty-3.7.0.Final.jar:/app/zookeeper-3.4.6/bin/../lib/log4j-1.2.16.jar:/app/zookeeper-3.4.6/bin/../lib/jline-0.9.94.jar:/app/zookeeper-3.4.6/bin/../zookeeper-3.4.6.jar:/app/zookeeper-3.4.6/bin/../src/java/lib/*.jar:/app/zookeeper-3.4.6/bin/../conf:.:/opt/jdk1.8.0_131/lib/dt.jar:/opt/jdk1.8.0_131/lib/tools.jar' org.apache.zookeeper.client.FourLetterWordMain localhost 5181 srvr + STAT= + ‘[‘ xx = x ‘]’ + echo ‘Error contacting service. It is probably not running.’ Error contacting service. It is probably not running. + exit 1 
 4、修改shell脚本:分析zkServer.sh 在脚本总增加输出STAT 内容,这次我们不进行过滤。 STAT1=`"$JAVA" "-Dzookeeper.log.dir=${ZOO_LOG_DIR}" "-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}"               -cp "$CLASSPATH" $JVMFLAGS org.apache.zookeeper.client.FourLetterWordMain               $clientPortAddress $clientPort srvr 2> test.log  `  echo "$STAT1" 
 最好的方式是copy一个新脚本,以免污染原本的脚本。我是这么做的;然后运行该脚本。 [root@localhost bin]# ./zkServer.sh  status ZooKeeper JMX enabled by default Using config: /usr/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg Error contacting service. It is probably not running. 
 然后查看生成的test.log 文件:果然存在异常内容。 in thread “main” java.lang.NumberFormatException: For input string: “2181 at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) at java.lang.Integer.parseInt(Integer.java:492) at java.lang.Integer.parseInt(Integer.java:527) at org.apache.zookeeper.client.FourLetterWordMain.main(FourLetterWordMain.java:76) 
 从日志信息来看,提示说2181这个端口号造成的。 不是一个合法的数字。 zkServer.sh里有这么一句: clientPort=`grep “^[[:space:]]*clientPort[^[:alpha:]]” “$ZOOCFG” | sed -e ‘s/.*=//’` grep “^[[:space:]]*clientPort[^[:alpha:]]” “$ZOOCFG” | sed -e ‘s/.*=//’在执行过程中,实际命令如下: grep ‘^[[:space:]]*clientPort[^[:alpha:]]’ /app/zookeeper-3.4.6/bin/../conf/zoo.cfg | sed -e ‘s/.*=//’ 
 
    最终可以基本确认配置文件存在问题:替换配置文件:重启 问题解决;存在原因可能是编辑zoo.cfg 编码格式等等引起文件内容解析异常。 【本文是51CTO专栏机构宜信技术学院的原创文章,微信公众号“宜信技术学院( id: CE_TECH)”】 戳这里,看该作者更多好文                          (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |