Configuración de instalación de solrcloud, tomcat, zookeeper

Solrcloud Tomcat Zookeeper Installation Configuration

Anteriormente, debido al solr3.6 utilizado en el proyecto, el servidor siempre se cuelga inexplicablemente y varias soluciones no tienen éxito. Así que intenté cambiar a solr4. Quiero probar los grupos solrcloud y zookeeper para ver cómo funciona el efecto. El efecto real es mucho más estable que 3.6. Hablemos de nuestra configuración específica de una prueba en el proyecto. Configuramos tres servidores zookper y tres servidores solr. Dado que no se han probado varias máquinas, los clústeres de zookeeper están todos en un servidor y el tomcat se implementa en tres servidores.

¿Qué es el guardián del zoológico?

ZooKeeper Como su nombre indica, zookeeper, es el administrador de Hadoop, Hive, Pig, Apache Hbase y Apache Solr, y LinkedIn sensei. ZooKeeper es un servicio de coordinación de aplicaciones distribuidas de código abierto distribuido. ZooKeeper se basa en el algoritmo Fast Paxos, que implementa servicios distribuidos como servicios de sincronización, mantenimiento de configuración y servicios de nombres.

Instalación y configuración de Zookeeper

Descargar Zookeeper

http://www.apache.org/dyn/closer.cgi/zookeeper/

Configuración del guardián del zoológico

--------------- Primero, cambie la asignación de nombre de host 127.0.1.1 en / etc / hosts a 127.0.0.1. --------------- (1) Extracto al cuidador del zoológico [llanura] ver llano Copiar
  1. tar -xf -C / home / myuser / zookeeper /
Copie 3 copias de la carpeta del guardián del zoológico, llamado guardián del zoológicoA, guardián del zoológicoB, guardián del zoológico C. Y cree una instantánea de datos y una carpeta de almacenamiento de registros, denominada zooA, zooB, zooC. (2) Edite el archivo de configuración de zookeeper correspondiente y copie zoo_sample.cfg en zookeeperconf a zoo.cfg [llanura] ver llano Copiar
  1. cd / home / myuser / zookeeperA / conf
  2. cp zoo_sample.cfg zoo.cfg
(3) modificar zoo.cfg [html] ver llano Copiar
  1. # El número de milisegundos de cada tick
  2. tickTime=2000
  3. # El número de tics que la inicial
  4. # La fase de sincronización puede tardar
  5. initLimit=10
  6. # El número de tics que pueden pasar entre
  7. # enviando una solicitud y obteniendo un acuse de recibo
  8. syncLimit=5
  9. # el directorio donde se almacena la instantánea.
  10. # no use / tmp para almacenamiento, / tmp aquí es solo
  11. # sakes de ejemplo.
  12. dataDir= / home / myuser / zooA / data
  13. # el puerto en el que se conectarán los clientes
  14. clientPort=2181
  15. # El servidor ZooKeeper y su número de puerto. # El conjunto ZooKeeper debe conocer todas las demás máquinas del conjunto # especificar la identificación del servidor creando el archivo 'myid' en el dataDir # usar el nombre de host en lugar de la dirección IP para un mantenimiento conveniente
  16. servidor 1=127.0.0.1:2888:3888
  17. servidor.2=127.0.0.1:2988:3988
  18. servidor.3=127.0.0.1:2088:3088
  19. #
  20. # Asegúrese de leer la sección de mantenimiento del
  21. # guía del administrador antes de activar la purga automática.
  22. #
  23. # http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
  24. #
  25. # El número de instantáneas para retener en dataDir
  26. #autopurge.snapRetainCount=3
  27. # Intervalo de tareas de purga en horas
  28. # Establecer en '0' para deshabilitar la función de purga automática
  29. #autopurge.purgeInterval=1
  30. dataLogDir= / inicio / miusuario / zooA / log
tickTime: tiempo de latido, para asegurar la existencia de la conexión, en milisegundos, el tiempo de espera mínimo es de dos latidos. initLimit: cuántos latidos permiten que otros servidores se conecten e inicialicen los datos. Si los datos administrados por ZooKeeper son grandes, aumente este valor en consecuencia. clientPort: el puerto de escucha del servicio dataDir: la carpeta utilizada para almacenar la instantánea de la base de datos en memoria. El archivo myid para el clúster también existe en esta carpeta (Nota: un archivo de configuración solo puede contener un dataDir, incluso si está comentado). dataLogDir: se utiliza para configurar el directorio del registro de transacciones por separado, la separación del registro de transacciones puede evitar la competencia con el registro y la instantánea ordinarios
syncLimit: cuántos tickTimes permiten que el seguidor se sincronice. Si el seguidor se queda muy atrás, será descartado.
(4) Cree un archivo myid
[llanura] ver llano Copiar
  1. cd / home / myuser / zooA / data
  2. sudo sh -c 'echo' 1 '>> myid'
Otras carpetas son similares a la creación de archivos myid, zookeeperB es 2, zookeeperC es 3 (5) Iniciar guardián del zoológico [llanura] ver llano Copiar
  1. cd / home / myuser / zookeeperA / bin
  2. sudo sh zkServer.sh iniciar
Ver el estado del cuidador del zoológico [llanura] ver llano Copiar
  1. [root @ xxxxx bin] # sh zkServer.sh status
  2. JMX habilitado por defecto
  3. Usando config: /home/weibo/zookeeperA/bin/../conf/zoo.cfg
  4. Modo: seguidor
Comience bien, inicie los otros dos cuidadores del zoológico a su vez, después de iniciar el primer cuidador del zoológico, puede observar al cuidador del zoológico. Debajo del contenedor puede ver el error, la conexión se rechazó, no importa, el cuidador del zoológico debe esperar a que se unan otros nodos, después de todo el arranque Es normal. (6) conexión de cliente zookeeper [llanura] ver llano Copiar
  1. [root @ xxxxx bin] # sh zkCli.sh
  2. Conectando a localhost: 2181
  3. 2013-05-10 15: 00: 25,363 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: zookeeper.version = 3.4.5-1392090, construido el 30/09/2012 17:52 GMT
  4. 2013-05-10 15: 00: 25,369 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: host.name = localhost
  5. 2013-05-10 15: 00: 25,370 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.version = 1.6.0_33
  6. 2013-05-10 15: 00: 25,371 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.vendor = Sun Microsystems Inc.
  7. 2013-05-10 15: 00: 25,372 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.home = / home / weibo / jdk1.6.0_33 / jre
  8. 2013-05-10 15: 00: 25,373 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.class.path = / home / weibo / zookeeperA / bin /../ build / classes: / inicio / weibo / zookeeperA / bin /../ build / lib / *. jar: / home / weibo / zookeeperA / bin /../ lib / slf4j-log4j12-1.6.1.jar: / home / weibo / zookeeperA / bin /../ lib / slf4j-api-1.6.1.jar: / home / weibo / zookeeperA / bin /../ lib / netty-3.2.2.Final.jar: / home / weibo / zookeeperA / bin / ../lib/log4j-1.2.15.jar:/home/weibo/zookeeperA/bin/../lib/jline-0.9.94.jar:/home/weibo/zookeeperA/bin/../zookeeper-3.4 .5.jar: / home / weibo / zookeeperA / bin /../ src / java / lib / *. Jar: / home / weibo / zookeeperA / bin /../ conf: /home/weibo/jdk1.6.0_33 / lib :.
  9. 2013-05-10 15: 00: 25,373 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.library.path = / home / weibo / jdk1.6.0_33 / jre / lib / amd64 / server : /home/weibo/jdk1.6.0_33/jre/lib/amd64: /home/weibo/jdk1.6.0_33/jre /../ lib / amd64: / usr / java / packages / lib / amd64: / usr / lib64: / lib64: / lib: / usr / lib
  10. 2013-05-10 15: 00: 25,374 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.io.tmpdir = / tmp
  11. 2013-05-10 15: 00: 25,375 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: java.compiler =
  12. 2013-05-10 15: 00: 25,375 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: os.name = Linux
  13. 2013-05-10 15: 00: 25,376 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: os.arch = amd64
  14. 2013-05-10 15: 00: 25,377 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: os.version = 2.6.32-279.5.2.el6.x86_64
  15. 2013-05-10 15: 00: 25,377 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: user.name = root
  16. 2013-05-10 15: 00: 25,378 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: user.home = / root
  17. 2013-05-10 15: 00: 25,379 [myid:] - INFO [main: root @ xxxxx] - Entorno del cliente: user.dir = / home / weibo / zookeeperA / bin
  18. 2013-05-10 15: 00: 25,382 [myid:] - INFO [main: root @ xxxxx] - Iniciando la conexión del cliente, connectString = localhost: 2181 sessionTimeout = 30000 root @ xxxxx
  19. ¡Bienvenido a ZooKeeper!
  20. 2013-05-10 15: 00: 25,604 [myid:] - INFO [main-SendThread (localhost: 2181): root @ xxxxx] - Conexión de socket de apertura al servidor localhost / 127.0.0.1: 2181. No intentará autenticarse mediante SASL (no se puede localizar la configuración de inicio de sesión)
  21. La compatibilidad con JLine está habilitada
  22. 2013-05-10 15: 00: 25,649 [myid:] - INFO [main-SendThread (localhost: 2181): root @ xxxxx] - Conexión de socket establecida a localhost / 127.0.0.1: 2181, iniciando sesión
  23. 2013-05-10 15: 00: 25,842 [myid:] - INFO [main-SendThread (localhost: 2181): root @ xxxxx] - Establecimiento de sesión completo en el servidor localhost / 127.0.0.1: 2181, sessionid = 0x13e7e067764005d, tiempo de espera negociado = 30000
  24. OBSERVADOR:
  25. Estado WatchedEvent: Tipo SyncConnected: Ninguno ruta: nulo
  26. [zk: localhost: 2181 (CONECTADO) 0] ls /
  27. [configs, zookeeper, clusterstate.json, aliases.json, live_nodes, overseer, overseer_elect, collections]
  28. [zk: localhost: 2181 (CONECTADO) 1]
Configuraciones: guarde la información de perfil cargada Clusterstate.json: estado del clúster json Alias: alias json Live_node: Cuando se inicia el servidor Solr, se registra aquí. Supervisor: guardar información de fragmentos Overseer_elect: elección de nodo Colecciones: todas las colecciones

Instalación y configuración de Solr y Tomcat

(1) Descargue solr4.2 y cargue el zookeeper del archivo de configuración en el directorio solr-4.2.1 example solr collection1 conf. (2) Cargue el archivo de configuración de solr en zookeeper [llanura] ver llano Copiar
  1. java -classpath.: / home / weibo / tomcat_solr_qq / webapps / solr / WEB-INF / lib / * org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost 127.0.0.1:2181,127.0.0.1:2281,127.0 .0.1: 2381 -confdir / home / weibo / solr-config -confname weiboconfig
(3) Vincular el archivo de configuración a la colección de destino [llanura] ver llano Copiar
  1. java -classpath.: / home / weibo / tomcat_solr_qq / webapps / solr / WEB-INF / lib / * org.apache.solr.cloud.ZkCLI -cmd linkconfig -collection weibocollection -confname weiboconfig -zkhost 127.0.0.1:2181,127.0 .0.1: 2281,127.0.0.1: 2381
(4) Copie 3 tomcats, cree solr.xml en conf / Catalina / localhost (si el directorio no existe, créelo usted mismo), el contenido es el siguiente [llanura] ver llano Copiar
crossContext no se puede establecer en verdadero, tenga en cuenta aquí (5) Cree solr.xml en su directorio de inicio de solr [llanura] ver llano Copiar
Otro tomcat correspondiente al número de puerto correspondiente (6) Edite tomcat bin / catalina.sh (catalina.bat en Windows), únase [llanura] ver llano Copiar
  1. JAVA_OPTS = '- DzkHost = 127.0.0.1: 2181,127.0.0.1: 2281,127.0.0.1: 2381'
Aquí es donde interactúan solr y el cuidador del zoológico. (7) Inicie tomcat a su vez, cree núcleo y fragmento, acceda a solr ----------------------------------Aquí, en aras de una prueba simple, solo creé un nodo maestro, no un nodo de réplica, si lo necesita, omita este paso y observe directamente la siguiente configuración de colección.----------------- [llanura] ver llano Copiar
  1. http: // localhost: 8080 / solr / admin / collections? action = CREATE & name = weibocollection & numShards = 3 & replicationFactor = 1


Colección, fragmento, replicación, configuración del núcleo

Primero, creamos una colección e indicamos el número de sus réplicas, el número de fragmentos [llanura] ver llano Copiar
  1. http: // localhost: 8080 / solr / admin / collections? action = CREATE & name = weibocollection & numShards = 3 & replicationFactor = 3 & maxShardsPerNode = 3
Dado que solr4.2 creará automáticamente una replicación, no es necesario crear una replicación manualmente aquí.

Último

Dado que el cuidador del zoológico vive a medias, ya que utilizo 3 cuidadores aquí, puedo morir hasta uno y puedo seguir trabajando. La recomendación oficial es utilizar servidores impares.