报错信息:
[root@erlang logs]# systemctl status zookeeper
● zookeeper.service
Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 四 2021-11-25 17:42:01 CST; 2s ago
Process: 16706 ExecStop=/usr/local/kafka_2.13-3.0.0/bin/zookeeper-server-stop.sh (code=exited, status=1/FAILURE)
Process: 16399 ExecStart=/usr/local/kafka_2.13-3.0.0/bin/zookeeper-server-start.sh /usr/local/kafka_2.13-3.0.0/config/zookeeper.properties (code=exited, status=127)
Main PID: 16399 (code=exited, status=127)
11月 25 17:42:01 erlang systemd[1]: Started zookeeper.service.
11月 25 17:42:01 erlang systemd[1]: Starting zookeeper.service...
11月 25 17:42:01 erlang zookeeper-server-start.sh[16399]: /usr/local/kafka_2.13-3.0.0/bin/kafka-run-class.sh: 第 342 行:exec: java: 未找到
11月 25 17:42:01 erlang systemd[1]: zookeeper.service: main process exited, code=exited, status=127/n/a
11月 25 17:42:01 erlang zookeeper-server-stop.sh[16706]: No zookeeper server to stop
11月 25 17:42:01 erlang systemd[1]: zookeeper.service: control process exited, code=exited status=1
11月 25 17:42:01 erlang systemd[1]: Unit zookeeper.service entered failed state.
11月 25 17:42:01 erlang systemd[1]: zookeeper.service failed.
处理思路:
1.首先我们打开报错的文件。
# vim /usr/local/kafka_2.13-3.0.0/bin/kafka-run-class.sh
2.使用:set nu显示行号,并找到报错的342行。
342 exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp "$CLASSPATH" $KAFKA_OPTS "$@"
看到这里,最直观的联想就是没有找到java命令。
3.查看是否运行java
[root@erlang]# java -version
java version "1.8.0_171"
Java(TM) SE Runtime Environment (build 1.8.0_171-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
明明是有java命令,并且/etc/profile中也已经配置了环境变量
export JAVA_HOME=/usr/local/jdk1.8.0_171
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
4.百度找到解决方法(但是无果)
原帖是这样写的:
大概猜到需要使用java命令,所以我们在配置文件中加入该环境变量。
于是照做,将我服务器的环境变量更改后如下:
export JAVA_HOME=/usr/local/jdk1.8.0_171
export JAVA=/usr/local/jdk1.8.0_171/bin/java
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
再次执行systemctl start zookeeper还是报相同的错误。
5.最终大招(解决问题)
将java的路径软链接到/usr/bin和/usr/sbin目录下
# ln -s export JAVA=/usr/local/jdk1.8.0_171/bin/java /usr/bin/java
# ln -s export JAVA=/usr/local/jdk1.8.0_171/bin/java /usr/sbin/java
再次执行systemctl start zookeeper,成功运行。
6.查看结果。
[root@erlang logs]# systemctl status zookeeper
● zookeeper.service
Loaded: loaded (/usr/lib/systemd/system/zookeeper.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2021-11-25 17:43:43 CST; 2s ago
Process: 16706 ExecStop=/usr/local/kafka_2.13-3.0.0/bin/zookeeper-server-stop.sh (code=exited, status=1/FAILURE)
Main PID: 16726 (java)
Memory: 70.8M
CGroup: /system.slice/zookeeper.service
└─16726 java -Xmx512M -Xms512M -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 - XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:MaxInlineLevel=15 -Djava.awt.headless=true -X...
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,660] INFO Reading snapshot /tmp/zookeeper/version-2/snapshot.0 (org.apache.zookeeper.server.persistence.FileSnap)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,662] INFO The digest value is empty in snapshot (org.apache.zookeeper.server.DataTree)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,715] INFO 139 txns loaded in 49 ms (org.apache.zookeeper.server.persistence.FileTxnSnapLog)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,715] INFO Snapshot loaded in 60 ms, highest zxid is 0x8b, digest is 295484105282 (org.apache.zookeeper.server.ZKDatabase)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,716] INFO Snapshotting: 0x8b to /tmp/zookeeper/version-2/snapshot.8b (org.apache.zookeeper.server.persistence.FileTxnSnapLog)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,720] INFO Snapshot taken in 4 ms (org.apache.zookeeper.server.ZooKeeperServer)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,731] INFO PrepRequestProcessor (sid:0) started, reconfigEnabled=false (org.apache.zookeeper.server.PrepRequestProcessor)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,731] INFO zookeeper.request_throttler.shutdownTimeout = 10000 (org.apache.zookeeper.server.RequestThrottler)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,745] INFO Using checkIntervalMs=60000 maxPerMinute=10000 maxNeverUsedIntervalMs=0 (org.apache.zookeeper.server....inerManager)
11月 25 17:43:44 erlang zookeeper-server-start.sh[16726]: [2021-11-25 17:43:44,746] INFO ZooKeeper audit is disabled. (org.apache.zookeeper.audit.ZKAuditProvider)
Hint: Some lines were ellipsized, use -l to show in full.
网友评论