2013-10-10 5 views
5

Sono nuovo in Zookeeper ed è stato un vero problema installarlo ed eseguirlo. Non sono sicuro di cosa ci sia di sbagliato qui, ma spiegherò cosa sto facendo per renderlo più chiaro:FAILED WRITE PID per l'installazione di Zookeeper

1.- Ho seguito la guida di installazione fornita da Apache. Ciò significa scaricare la distribuzione Zookeeper (versione stabile) estratto il file e spostato nella directory home.

2.- Come sto utilizzando Ubuntu 12.04 ho modificato il file .bashrc tra cui questo:

export ZOOKEEPER_INSTALL=/home/myusername/zookeeper-3.4.5 
export PATH=$PATH:$ZOOKEEPER_INSTALL/bin 

3.- Creare un file di configurazione su conf/zoo.cfg

tickTime=2000 
dataDir=/var/zookeeper 
clientPort=2181 

e anche provato con:

dataDir=/var/log/zookeeper 

e

dataDir=/var/bin/zookeeper 

4.- Quando si esegue il comando di avvio

zkServer.sh start or `bin/zkServer.sh start` nothing happens and always returns this 

JMX enabled by default 
Using config: /home/sasuke/zookeeper-3.4.5/bin/../conf/zoo.cfg 
mkdir: cannot create directory `/var/zookeeper': Permission denied 
Starting zookeeper ... /home/sasuke/zookeeper-3.4.5/bin/zkServer.sh: line 113: /var/zookeeper/zookeeper_server.pid: No such file or directory 
FAILED TO WRITE PID 

ho Java installato e all'interno della directory zookeper è presente un file zookeeper.jar che penso non è in esecuzione. Controllo qui su StackOverflow c'era un ragazzo che ha detto che poteva correre guardiano dello zoo dopo aver digitato

ssh localhost 

Ma quando provo a farlo io ottenere questo errore

ssh: connect to host localhost port 22: Connection refused 

prega di aiuto. Sono qui per cercare di risolverlo da troppo tempo.

Guida alle operazioni preliminari di guardiano dello zoo: http://zookeeper.apache.org/doc/r3.1.2/zookeeperStarted.html caso precedente risolto con il localhost shh Zookeeper: FAILED TO WRITE PID

AGGIORNAMENTO: Le autorizzazioni per registro sono:

drwxr-xr-x 19 root root  4096 Oct 10 07:52 log 

e per Zookeeper:

drwxr-xr-x 2 zookeeper   zookeeper 4096 Mar 23 2012 zookeeper 

Devo cambiare e qualcuno di questi?

+0

Post autorizzazioni di '/ var/log/zookeeper'? Sembra che tu non disponga delle autorizzazioni necessarie – bsd

+0

Per favore, vedi la mia risposta sulla stessa domanda: http://stackoverflow.com/questions/11092636/zookeeper-failed-to-write-pid –

+0

prova il server di avvio con "start -foreground "per vedere il registro completo del problema –

risposta

2

Sembra che non si disponga delle autorizzazioni necessarie. Il proprietario di /var/log sta per essere root. Zookeeper memorizza l'id del processo e l'istantanea dei dati in quella directory. L'ID processo del server guardiano dello zoo generato viene memorizzato in un file - zookeeper_server.pid (a partire dal 3.3.6)

Se avete previleges radice, si potrebbe iniziare con Zookeeper sudo (root) previleges, dovrebbe funzionare, ma sicuramente non consigliato . Assicurati di avviare zookeeper con le stesse autorizzazioni (o superiori) del proprietario della directory.

Creare una nuova directory nella cartella Inizio come /home/username/zookeeper-data. Lascia che dataDir punti a quella directory e dovrebbe funzionare.

+0

Ho cambiato il dataDir come hai detto e ha funzionato. Ma avrei problemi dopo, quando lo sviluppherò? Ho cambiato le autorizzazioni della directory di log e zookeeper permettendo all'utente e al gruppo di scrivere su di esso ma non ha funzionato. Tra l'altro, grazie per l'asnwer. – Rodrigo

0

Questo mi succede a causa dello spazio su disco insufficiente. causa zookeeper non può creare il file pid all'interno della cartella dei dati zookeeper.

7

Ho avuto lo stesso problema. Nel mio caso è stato utile per iniziare a Zookeeper e specificare direttamente un file di configurazione:

/bin/zkServer.sh Iniziamo conf/zoo.conf

+0

Questo ha funzionato per me. –

+0

Questa risposta dovrebbe essere più alta. Soprattutto se si verifica l'errore durante l'esecuzione come root. – Eric

0

Quando si crea la directory per assicurarsi che datadir per utilizzare l'opzione -p. Ciò consentirà la creazione di directory successive come richiesto dall'applicazione che inserisce i file.

mkdir -p /var/log/zookeeperData Poi set:

dataDir=/var/log/zookeeperData

+0

Zookeeper crea automaticamente quella cartella ... – chomp

0

ho affrontato lo stesso problema durante l'avvio del Zookeeper con questo comando:

Hadoop @ ubuntu: ~/Hadoop/Zookeeper/zookeeper- 3.4.8 $ bin/zkServer.sh start

ERRORE [main] client.ConnectionManager $ HConnectio nImplementazione: Il nodo/hbase non è in ZooKeeper.

Dovrebbe essere stato scritto dal maestro. Controllare il valore configurato in zookeeper.znode.parent. Potrebbe esserci una mancata corrispondenza con quella configurata nel master.

Ma l'esecuzione dello script come su rettificato il problema:

Hadoop @ ubuntu: ~/Hadoop/guardiano/guardiano dello zoo-3.4.8 $ sudo bin/zkServer.sh inizio

ZooKeeper JMX abilitato per impostazione predefinita Utilizzando config: /home/hadoop/hadoop/zookeeper/zookeeper-3.4.8/bin/../conf/zoo.cfg partire guardiano dello zoo ... PRELIMINARI

1

Il Sottotito L'installazione di zookeeper (estratto di tar) viene fornita con il file conf conf/zoo_sample.cfg mentre lo stesso estratto bin/zkServer.sh si aspetta che il file conf sia chiamato zoo.cfg risultante in un "Nessun file o dir" e l'errore "impossibile scrivere pid". Quindi, prima di eseguire zkServer.sh per avviare o arrestare esempio Zookeeper, sia:

  • rinominare il zoo_sample.cfg nella directory conf per zoo.cfg, o
  • dare il nome (e il percorso) per il file di configurazione (come suggested by Ilya Lapitan) , o, naturalmente
  • modificare zkServer.sh ;-)
-1

tenta di utilizzare sudo -E bin/zkServer.sh iniziare

0

Vai a/usr/local/etc/
Troverete directory guardiano dello zoo
cancellare la directory
e riavviare il server - zkServer iniziare

+1

dai un'occhiata a come creare un elenco [elenco di esempio] (https://stackoverflow.com/editing-help#simple-lists). –

0

Modificare il percorso darà datadir =/tmp/Zookeeper . Se funziona, i suoi problemi sono chiaramente accessibili

Ma generalmente non è consigliabile utilizzare la directory tmp.