zk配置Error: JAVA_HOME is incorrectly set.

windows10 環境下本機安裝zookeeper。

公司測試服務器的zookeeper 因爲一些未知原因,會偶爾掛掉,然後考慮本機安裝zookeeper服務,用於程序開發。

一. 下載zookeeper 官網地址:http://mirror.bit.edu.cn/apache/zookeeper/

一開始選擇的是zookeeper-3.5.5版本,後來再啓動時,提示加載不到主類,找了些資料,也沒有解決,然後換了zookeeper-3.4.14 試了下,可以啓動服務並應用。

我這邊下載安裝的是zookeeper-3.4.14版本(zookeeper-3.4.14.tar.gz ) http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/

二. 安裝

2.1 將壓縮包解壓到D盤 目錄爲:D:\zookeeper-3.4.14。

2.2 修改D:\zookeeper-3.4.14\conf 下的zoo_sample.cfg 文件。
1)首先將文件名改成 zoo.cfg。
2)打開 zoo.cfg 文件 ,指定臨時數據目錄,修改dataDir=/tmp/zookeeper 爲 dataDir=D:/zookeeper-3.4.14/tmp/zookeeper。
3)其他屬性後期可根據需要修改。

三. 啓動
通過 cmd 進入dos命令窗口。命令窗口模式進入zookeeper的bin目錄下,輸入zkServer.cmd 回車。
C:\Users\hzhb>e:

D:>cd zookeeper-3.4.14/bin

D:\zookeeper-3.4.14\bin>zkServer.cmd
Error: JAVA_HOME is incorrectly set.

D:\zookeeper-3.4.14\bin>call “-Dzookeeper.log.dir=D:\zookeeper-3.4.14\bin…” “-Dzookeeper.root.logger=INFO,CONSOLE” -cp “D:\zookeeper-3.4.14\bin…\build\classes;D:\zookeeper-3.4.14\bin…\build\lib*;D:\zookeeper-3.4.14\bin…*;D:\zookeeper-3.4.14\bin…\lib*;D:\zookeeper-3.4.14\bin…\conf” org.apache.zookeeper.server.quorum.QuorumPeerMain “D:\zookeeper-3.4.14\bin…\conf\zoo.cfg”
‘"-Dzookeeper.log.dir=D:\zookeeper-3.4.14\bin…"’ 不是內部或外部命令,也不是可運行的程序
或批處理文件。

D:\zookeeper-3.4.14\bin>endlocal

D:\zookeeper-3.4.14\bin>

。。。。。報錯了。。。。。

根據異常信息 提示JAVA_HOME 設置錯誤,下面要設置下JAVA_HOME。

打開 D:\zookeeper-3.4.14\bin 下的zkEnv.cmd 文件。然後重新指定JAVA_HOME。

刪掉原來的 set JAVA_HOME=%JAVA_HOME:"=% ,然後修改如下:

@REM setup java environment variables
set JAVA_HOME=“C:\Program Files\Java\jdk1.8.0_131”

if not defined JAVA_HOME (
echo Error: JAVA_HOME is not set.
goto :eof
)

if not exist “%JAVA_HOME%”\bin\java.exe (
echo Error: JAVA_HOME is incorrectly set.
goto :eof
)

REM strip off trailing \ from JAVA_HOME or java does not start
if “%JAVA_HOME:~-1%” EQU “” set “JAVA_HOME=%JAVA_HOME:~0,-1%”

set JAVA="%JAVA_HOME%"\bin\java

然後 回到命令窗口 重新啓動 如下:
D:\zookeeper-3.4.14\bin>zkServer.cmd
系統找不到指定的路徑。
Error: JAVA_HOME is incorrectly set.

D:\zookeeper-3.4.14\bin>call “-Dzookeeper.log.dir=D:\zookeeper-3.4.14\bin…” “-Dzookeeper.root.logger=INFO,CONSOLE” -cp “D:\zookeeper-3.4.14\bin…\build\classes;D:\zookeeper-3.4.14\bin…\build\lib*;D:\zookeeper-3.4.14\bin…*;D:\zookeeper-3.4.14\bin…\lib*;D:\zookeeper-3.4.14\bin…\conf” org.apache.zookeeper.server.quorum.QuorumPeerMain “D:\zookeeper-3.4.14\bin…\conf\zoo.cfg”
‘"-Dzookeeper.log.dir=D:\zookeeper-3.4.14\bin…"’ 不是內部或外部命令,也不是可運行的程序
或批處理文件。

D:\zookeeper-3.4.14\bin>endlocal

D:\zookeeper-3.4.14\bin>

。。。。。發現還是報錯 系統找不到指定的路徑。。。。。。。

然後看配置文件是
if not exist “%JAVA_HOME%”\bin\java.exe (
echo Error: JAVA_HOME is incorrectly set.
goto :eof
)
報的錯誤,將路徑修改下,去掉 “%JAVA_HOME%” 的雙引號 改成 %JAVA_HOME% 如下:

@REM setup java environment variables
set JAVA_HOME=“C:\Program Files\Java\jdk1.8.0_131”

if not defined JAVA_HOME (
echo Error: JAVA_HOME is not set.
goto :eof
)

if not exist %JAVA_HOME%\bin\java.exe (
echo Error: JAVA_HOME is incorrectly set.
goto :eof
)

REM strip off trailing \ from JAVA_HOME or java does not start
if “%JAVA_HOME:~-1%” EQU “” set “JAVA_HOME=%JAVA_HOME:~0,-1%”

set JAVA=%JAVA_HOME%\bin\java

然後 回到命令窗口 重新啓動 如下:
D:\zookeeper-3.4.14\bin>zkServer.cmd
此時不應有 =“C:\Program Files\Java\jdk1.8.0_131”。

D:\zookeeper-3.4.14\bin>

。。。。。。
還是有問題,在這個地方,想了好一會也不清楚問題在哪裏,後來分析下唯一可能出問題的地方 也就是
REM strip off trailing \ from JAVA_HOME or java does not start
if “%JAVA_HOME:~-1%” EQU “” set “JAVA_HOME=%JAVA_HOME:~0,-1%”
看下這句話大概是說如果JAVA_HOME滿足什麼條件,給JAVA_HOME賦值,個人覺着 JAVA_HOME 上面已經配好,可以不管這句,就把它刪掉了。。。。。

然後 回到命令窗口 重新啓動 如下:
D:\zookeeper-3.4.14\bin>zkServer.cmd

D:\zookeeper-3.4.14\bin>call “D:\java\JDK”\bin\java “-Dzookeeper.log.dir=D:\zookeeper-3.4.14\bin…” “-Dzookeeper.root.logger=INFO,CONSOLE” -cp “D:\zookeeper-3.4.14\bin…\build\classes;D:\zookeeper-3.4.14\bin…\build\lib*;D:\zookeeper-3.4.14\bin…*;D:\zookeeper-3.4.14\bin…\lib*;D:\zookeeper-3.4.14\bin…\conf” org.apache.zookeeper.server.quorum.QuorumPeerMain “D:\zookeeper-3.4.14\bin…\conf\zoo.cfg”
2019-11-20 15:04:07,148 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: D:\zookeeper-3.4.14\bin…\conf\zoo.cfg
2019-11-20 15:04:07,148 [myid:] - INFO [main:DatadirCleanupManager@78] - autopurge.snapRetainCount set to 3
2019-11-20 15:04:07,148 [myid:] - INFO [main:DatadirCleanupManager@79] - autopurge.purgeInterval set to 0
2019-11-20 15:04:07,148 [myid:] - INFO [main:DatadirCleanupManager@101] - Purge task is not scheduled.
2019-11-20 15:04:07,148 [myid:] - WARN [main:QuorumPeerMain@116] - Either no config or no quorum defined in config, running in standalone mode
2019-11-20 15:04:07,210 [myid:] - INFO [main:QuorumPeerConfig@136] - Reading configuration from: D:\zookeeper-3.4.14\bin…\conf\zoo.cfg
2019-11-20 15:04:07,226 [myid:] - INFO [main:ZooKeeperServerMain@98] - Starting server
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:zookeeper.version=3.4.14-4c25d480e66aadd371de8bd2fd8da255ac140bcf, built on 03/06/2019 16:18 GMT
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:host.name=LAPTOP-RAHT8U4H
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.version=1.8.0_60
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.vendor=Oracle Corporation
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.home=D:\java\JDK\jre
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.class.path=D:\zookeeper-3.4.14\bin…\build\classes;D:\zookeeper-3.4.14\bin…\build\lib*;D:\zookeeper-3.4.14\bin…\zookeeper-3.4.14.jar;D:\zookeeper-3.4.14\bin…\lib\audience-annotations-0.5.0.jar;D:\zookeeper-3.4.14\bin…\lib\jline-0.9.94.jar;D:\zookeeper-3.4.14\bin…\lib\log4j-1.2.17.jar;D:\zookeeper-3.4.14\bin…\lib\netty-3.10.6.Final.jar;D:\zookeeper-3.4.14\bin…\lib\slf4j-api-1.7.25.jar;D:\zookeeper-3.4.14\bin…\lib\slf4j-log4j12-1.7.25.jar;D:\zookeeper-3.4.14\bin…\conf
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.library.path=D:\java\JDK\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;“D:\java\JDK;\bin;D:\java\JDK;\jre\bin;”;C:\Users\DYF\AppData\Local\Microsoft\WindowsApps;;.
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.io.tmpdir=C:\Users\DYF\AppData\Local\Temp
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:java.compiler=
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:os.name=Windows 10
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:os.arch=amd64
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:os.version=10.0
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:user.name=DYF
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:user.home=C:\Users\DYF
2019-11-20 15:04:07,274 [myid:] - INFO [main:Environment@100] - Server environment:user.dir=D:\zookeeper-3.4.14\bin
2019-11-20 15:04:07,290 [myid:] - INFO [main:ZooKeeperServer@836] - tickTime set to 2000
2019-11-20 15:04:07,290 [myid:] - INFO [main:ZooKeeperServer@845] - minSessionTimeout set to -1
2019-11-20 15:04:07,290 [myid:] - INFO [main:ZooKeeperServer@854] - maxSessionTimeout set to -1
2019-11-20 15:04:07,352 [myid:] - INFO [main:ServerCnxnFactory@117] - Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory
2019-11-20 15:04:07,352 [myid:] - INFO [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181

啓動成功!

然後將項目中的原來的zookeeper 地址換成 當前配置 127.0.0.1:2181 即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章