Ich verwende zookeeper in meinem Produkt (3.3.3). Während ich mit zoekeeper unter Windows arbeite, erstelle ich einen Dienst (mit prunsrv), Ich habe ein paar Fragen und Probleme. Eingestellt allen,Abfrage bezüglich Zookeeper Windows API starten/stoppen, mit Zk als Windows-Dienst (mit Hilfe von prunsrv)
Probleme: 1) zkServer.cmd nicht auf Win Server 2008-Rechner & Win 7 Enterprise (64 Bit beide) gestartet wurde, hatte die folgende Zeile ein,
java "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%" %*
ersetzen
java "-Dzookeeper.log.dir=%ZOO_LOG_DIR%" "-Dzookeeper.root.logger=%ZOO_LOG4J_PROP%" -cp "%CLASSPATH%" %ZOOMAIN% "%ZOOCFG%"
And it worked, could it be fixed in some other way?
2) im zoo.cnf ich die dataDir angegeben, noch schafft es ein anderes Verzeichnis (ist/zookeeper-3.4.5zookeeper-3.4.5data/Version-2/snapshot) und speichert die dort Schnappschüsse.
Abfragen: 1) Es gibt keinen Start ist/mit zkServer.cmd stoppen, wie es in zkServer.sh wird, so dass im Grunde ist es mit zkServer.cmd begonnen, aber Also, wenn ich eine Strg + C/Z zu stoppen Ich beginne den Prozess, es ist ein Vordergrund-Prozess und wird getötet, wenn ich eine Strg + C
2) Ich muss einen Tierpfleger Dienst erstellen, und ich verwende prunsrv, um das zu tun. Ich habe die folgenden zwei Möglichkeiten herausgefunden.
a)
prunsrv //IS//Zookeeper --DisplayName=" ZOOKEEPER Service" --Description=" ZOOKEEPER Service" --Startup=auto --StartMode=exe --StartPath=%ZOOKEEPER_HOME% --StartImage=%ZOOKEEPER_HOME%\bin\zkServer.cmd --StopTimeout=5 --LogPath=%LOGS_DIR% --LogPrefix=zookeeper --LogLevel=Info --PidFile=zookeeper.pid --StdOutput=auto --StdError=auto
b)
cd %ZOOKEEPER_HOME%\bin\
call "%~dp0zkEnv.cmd"
set ZOOMAIN=org.apache.zookeeper.server.quorum.QuorumPeerMain
prunsrv //IS//Zookeeper --DisplayName=" ZOOKEEPER Service" --Description=" ZOOKEEPER Service" --Jvm="%JVM_DLL%" --JvmOptions=!JAVA_OPTS! --Environment=zookeeper.log.dir=%ZOO_LOG_DIR%;zookeeper.root.logger=%ZOO_LOG4J_PROP%; --Startup=auto --LibraryPath=%LIB_DIR% --StartMode=jvm --Classpath=%CLASSPATH% %ZOOMAIN% %ZOOCFG% --StartClass=org.apache.zookeeper.server.quorum.QuorumPeerMain --StartMethod=start --StopMode=jvm --StopClass=org.apache.zookeeper.server.quorum.QuorumPeerMain --StopMethod=stop --StopTimeout=10 --LogPath=%LOGS_DIR% --LogPrefix=zookeeper --LogLevel=Info --PidFile=zookeeper.pid --StdOutput=auto --StdError=auto
grundsätzlich im zweiten Ansatz bin ich mir alle Aufgaben von der zkServer.cmd getan tun
= >> Meine Suche ist in der zweiten Stufe (2b), das den Dienst beenden da sein sollte eine Stopp-Methode ausgesetzt, so dass, wenn ich den Dienst stoppe, wird es aufgerufen. Also wenn ich jetzt einen Dienst erstelle und ihn starte, läuft ZK gut, aber es dauert unendlich, also muss ich den Prozess beenden. Gibt es ein stop() für das gleiche, sehe ich ein shutdown(), aber es gibt keine Beschreibung dafür
Ich ging durch die Klasse org.apache.zookeeper.server.quorum.QuorumPeerMain, hier die main() ist die Startmethode (wenn mein Verständnis stimmt), und es sollte eine Methode geben, um den Prozess zu beenden.
bekam einfach auf den folgenden Link
https://issues.apache.org/jira/browse/ZOOKEEPER-1122, stellt eine Start/Stopp, aber der Anschlag hat einige Probleme
es führt den folgenden Fehler:
E:\zookeeper-3.4.5\zookeeper-3.4.5\bin>zkServer.cmd stop
"JMX enabled by default"
"Using config: E:\zookeeper-3.4.5\zookeeper-3.4.5\bin\..\conf\zoo.cfg"
"Stopping zookeeper ... "
ERROR: The process with PID 452 (child process of PID 4) could not be terminated.
Reason: This is critical system process. Taskkill cannot end this process.
ERROR: The process with PID 4 (child process of PID 0) could not be terminated.
Reason: Access is denied.
ERROR: The process with PID 0 (child process of PID 0) could not be terminated.
Reason: This is critical system process. Taskkill cannot end this process.
STOPED
ich diesen Stoppbefehl leite auf einer Administratorkonsole.
E: \ zoekeeper-3.4.5 \ zoekeeper-3.4.5 \ bin> Aufgabenliste | findstr "java" java.exe 10324 Console 1 36036 K.
Jede Hilfe sehr
geschätzt würde