Descargando e instalando Zookeeper
Para descargar y descomprimir la release, hay que usar los comandos a continuación.
cd $HOME wget 'http://apache.rediris.es/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz' tar -zxvf zookeeper-3.4.6.tar.gz mv zookeeper-3.4.6.tar.gz zookeeper cd zookeeper export ZOOKEEPER_HOME=$HOME/zookeeper
Para los propósitos de uso de Storm, con un Zookeeper en modo single sería suficiente, no obstante es recomendable usar al menos tres. Para mantener el tutorial simple, vamos a hacer la configuración para usar un único Zookeeper.
El siguiente paso a realizar, es crear un fichero de configuración de Zookeeper. El propio Zookeeper viene con un fichero de ejemplo que con renombrarlo ya lo tendremos todo hecho para el modo single node:
mv conf/zoo_sample.conf conf/zoo.conf
Lo último que tenemos que hacer para arrancar el servidor es ejecutar el fichero "zkServer.sh start" dentro de la carpeta bin que iniciará el servidor en segundo plano:
$ZOOKEEPER_HOME/bin/zkServer.sh start
¡Hecho! Ya tenemos el servidor Zookeeper corriendo ahora vamos a hacer alguna prueba para comprobar que esté funcionando sin problemas. Para ello usaremos el cliente Zookeeper que viene con la release descargada y le indicaremos el servidor:puerto donde se encuentra el servidor de Zookeeper (NOTA: si no hemos tocado nada de la configuración del servidor de Zookeeper, este viene predeterminado en el puerto 2182):
$ZOOKEEPER_HOME/bin/zkCli.sh -server 127.0.0.1:2182
Nos saldrán unos mensajes de log y un prompt. Si escribimos help podemos ver una serie de comandos que podemos ejecutar en el terminal.
Welcome to ZooKeeper! 2014-04-27 22:56:38,225 [myid:] - INFO [main-SendThread(172.17.0.2:2181):ClientCnxn$SendThread@975] - Opening socket connection to server 172.17.0.2/172.17.0.2:2181. Will not attempt to authenticate using SASL (unknown error) JLine support is enabled 2014-04-27 22:56:38,234 [myid:] - INFO [main-SendThread(172.17.0.2:2181):ClientCnxn$SendThread@852] - Socket connection established to 172.17.0.2/172.17.0.2:2181, initiating session [zk: 172.17.0.2:2181(CONNECTING) 0] 2014-04-27 22:56:38,655 [myid:] - INFO [main-SendThread(172.17.0.2:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 172.17.0.2/172.17.0.2:2181, sessionid = 0x145a4f801ef0000, negotiated timeout = 30000 WATCHER:: WatchedEvent state:SyncConnected type:None path:null [zk: 172.17.0.2:2181(CONNECTED) 0] help ZooKeeper -server host:port cmd args connect host:port get path [watch] ls path [watch] set path data [version] rmr path delquota [-n|-b] path quit printwatches on|off create [-s] [-e] path data acl stat path [watch] close ls2 path [watch] history listquota path setAcl path acl getAcl path sync path redo cmdno addauth scheme auth delete path [version] setquota -n|-b val path
Ya tenemos nuestro cliente y prompt abierto. Vamos a crear un nuevo znode llamado maricaster y asignarle el nombre de este blog (mariocaster.blogspot.com)
[zk: 172.17.0.2:2181(CONNECTED) 1] create /mariocaster mariocaster.blogspot.com Created /mariocaster [zk: 172.17.0.2:2181(CONNECTED) 2] ls / [mariocaster, zookeeper]
Si hacemos "ls /", uno de los comandos básicos para listar znodes, podemos ver que tenemos un nuevo znode llamado "mariocaster". Ahora vamos a ver el contenido del znode con la orden "get":
[zk: 172.17.0.2:2181(CONNECTED) 3] get /mariocaster mariocaster.blogspot.com cZxid = 0x2 ctime = Sun Apr 27 22:59:32 CEST 2014 mZxid = 0x2 mtime = Sun Apr 27 22:59:32 CEST 2014 pZxid = 0x2 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 24 numChildren = 0 [zk: 172.17.0.2:2181(CONNECTED) 4]
Como podemos ver en el resultado, aparece el nombre del blog. Ahora vamos a cambiar el valor para agregarle el http:// que hemos olvidado con la orden "set"
[zk: 172.17.0.2:2181(CONNECTED) 4] set /mariocaster http://mariocaster.blogspot.com cZxid = 0x2 ctime = Sun Apr 27 22:59:32 CEST 2014 mZxid = 0x3 mtime = Sun Apr 27 23:03:41 CEST 2014 pZxid = 0x2 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 31 numChildren = 0 [zk: 172.17.0.2:2181(CONNECTED) 5] get /mariocaster http://mariocaster.blogspot.com cZxid = 0x2 ctime = Sun Apr 27 22:59:32 CEST 2014 mZxid = 0x3 mtime = Sun Apr 27 23:03:41 CEST 2014 pZxid = 0x2 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 31 numChildren = 0 [zk: 172.17.0.2:2181(CONNECTED) 6]
Hemos hecho un get al final para comprobar el valor actual del znode que, como podemos comprobar, efectivamente ha cambiado. Por último vamos a borrar este znode recién creado:
[zk: 172.17.0.2:2181(CONNECTED) 6] delete /mariocaster [zk: 172.17.0.2:2181(CONNECTED) 7] ls / [zookeeper] [zk: 172.17.0.2:2181(CONNECTED) 8]
Y con esto termina el tutorial introductorio a Zookeeper, herramienta que vamos a necesitar para la instalación de Apache Storm, motor para aplicaciones de tiempo real distribuidas que veremos en otro tutorial
0 comentarios:
Publicar un comentario