SOLR en Centos


1.- Crear estructura de directorio:
                1.1.-  APPS
shell> cd /
shell> mkdir solr
shell> cd solr
shell> mkdir apps
shell> mkdir tu_apps
                1.2.- INDEX
shell> cd solr
shell> mkdir index
shell> mkdir index/tu_apps
Siempre en “minúsculas” que el amigo Linux es Key-Sensity
Tenemos que modificar los permisos de las carpetas, pero lo haremos más
2.- Copiar la aplicación:
Con el SSH, copiamos la aplicación...aqui necesitas los conocimientos de algún programador que tenga desarrollado la aplicacion de solr. Puesdes encontrar mas información http://lucene.apache.org/solr/ 

3.- Modificar los ficheros de configuración adecuándola a nuestra estructura de ficheros.
Los ficheros que tenemos que configurar están en la carpeta:
Configurarnos la carpeta de destino del índice
shell> solr/conf/advert/conf/solrconfig.xml
Configuramos los puertos de escuha y la memoria a utilizar por el WS:
shell> solr/apps/tu_apps/jetty.xml
El fichero jettyReindx.xml se configura el puerto del reindexador.


4.- Creamos el usuario que ejecutara el “solr” tiene que ser en nuestro caso el usuario de Windows “usuario” (tiene que ser el mismo usuario generar el índice en Windows, de momento no tenemos la posibilidad de generar el índice en Linux)
shell> groupadd usuario

shell> useradd –n –g migrupo miusuario
Le ponemos la misma contraseña que Windows: H8
shell> passwd usrsvrc
5.- Cambiamos los permisos de la carpeta “solr” para que sea este usuario el propietario de dicha carpeta, también le damos permisos de escritura/lectura sobre la carpeta y subcarpetas.
Desde la raid /
shell> chown –R usuario:usuario /solr

shell> chmod –R 777 /solr
6.- Instalamos SAMBA, para poder copiar los índices desde Windows.
shell> yum install samba
Configuramos el fichero de configuración, adecuándolo a nuestras necesidades:
shell> vi /etc/samba/smb.conf
Si  queréis tener una copiar del fichero original, podemos hacer:
shell> mv /etc/samba/smb.conf /etc/samba/smb.old
Y creamos un smb.conf nuevo:
#======================= Global Settings =====================================
[global]
workgroup = DOMINO
server string = SOLR
netbios name = SERVER_NAME
interfaces = lo eth1 eth0 192.168.100.0/24
hosts allow = 127. 192.168.100.
# --------------------------- Logging Options -----------------------------
# logs split per machine
log file = /var/log/samba/%m.log
# max 50KB per log file, then rotate
max log size = 50

# ----------------------- Standalone Server Options ------------------------

security = user
passdb backend = tdbsam

#============================ Share Definitions ==============================

[solr]
comment = Directorio SOLR
path = /solr
browseable = yes
writable = yes
valid users = DOMINIO\usuario DOMINIO\usurio1  root
admin users = root
#======================================================================
Hay que darle una contraseña en SAMBA para poder acceder a los recursos, esta contraseña tiene que ser la misma que la de Windows.
shell> smbpasswd –a usuario
Hay que hacerlo votable en el inicio, mediante el setup y arrancar el servicio:
shell> /etc/init.d/smb start
Hay que activar el servicio para que sea “botable” en el menú del setup
7.- Instalamos la herramienta “start-stop-daemon”, la utilizamos a la hora de crear el daemon del SOLR.
Necesitaríamos la utilidad gcc, si no la tenemos instalada -> yum install gcc
Descomprimir el fichero de instalación, el fichero lo  podemos descargar:
shell> tar zxvf apps-sys-utils-start-stop-daemon-IR1_9_18-2.tar.tar
shell> cd apps
shell> cd sys-utils/
shell> cd start-stop-daemon-IR1_9_18-2/
shell> gcc start-stop-daemon.c -o start-stop-daemon
Una vez hecho esto, tenemos que copiar la aplicación copilada en el path
shell> mv start-stop-daemon /usr/sbin/
8.- Tenemos que configurar el daemon de SOLR, para que sea un servicio.
Tenemos que crear el script del daemon en la carpeta /etc/init.d/
Hay que darle permisos 755 sobre eso script
shell> vi /etc/init.d/solr_tu_apps
El código es este:
#####################################################################
#! /bin/sh
#
# Solr init script, copied from red5 one from G. Giunta. 2007.11.29
#
# red5                                red5 initscript
#
# Author:  Simon Eisenmann <simon@struktur.de>.
#
# chkconfig: 345 20 80
# description: Solr Indexer Server

set -e

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Solr TU_APPS"
NAME=solr_tu_apps
SOLR_HOME=/solr/apps
DAEMON=$SOLR_HOME/$NAME.sh
PIDFILE=/solr/apps/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
SOLR_USER=usuario

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
                        . /etc/default/$NAME
fi

#
#                     Function that starts the daemon/service.
#
d_start() {
                        cd $SOLR_HOME  
        start-stop-daemon --chuid $SOLR_USER --user $SOLR_USER --quiet --background --exec $DAEMON --start --pidfile $PIDFILE --make-pidfile
}

#
#                     Function that stops the daemon/service.
#
d_stop() {
                        start-stop-daemon --stop --quiet --pidfile $PIDFILE \
                                               --name java
        rm -f $PIDFILE
   
}

case "$1" in
  start)
                        echo -n "Starting $DESC:.....OK"
                        d_start
                        echo "."
                        ;;
  stop)
                        echo -n "Stopping $DESC:.....OK"
                        d_stop
                        echo "."
                        ;;
  restart|force-reload)
                        echo -n "Restarting $DESC:.....OK"
                        d_stop
                        sleep 1
                        d_start
                        echo "."
                        ;;

  *)
                        echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
                        exit 1
                        ;;
esac

exit 0
 #####################################################################


Ahora tenemos que añadir el daemon al sistema

shell> cd /etc/init.d/

shell> chkconfig -–add solr_tu_apps
Podemos comprobar que se arranca después de un reinicio, mirando el setup
                                       
9.- Como vemos en el script, en la carpeta de la aplicación, tenemos que tener otro script que lanza el propio WS de SOLR. Este lo hemos copiado con la aplicación pero igualmente este es el código

shell> vi /solr/apps/solr_tu_apps.sh


#####################################################################
#!/bin/bash
chkconfig: 345 20 80
description: Solr Indexer Server


for JAVA in "$JAVA_HOME/bin/java" "/usr/bin/java" "/usr/local/bin/java"
do
  if [ -x $JAVA ]
  then
    break
  fi
done

if [ ! -x $JAVA ]
then
  echo "Unable to locate java. Please set JAVA_HOME environment variable."
  exit
fi

# start solr
cd /solr/apps/sgmbra
exec $JAVA -Xms1024m -Xmx1024M  -Dsolr.solr.home=/solr/apps/solr/conf -jar /solr/apps/start.jar
#####################################################################

10.- Instalar JAVA

shell> yum install java

11.- Solo queda comprobar que funciona todo, hay que arrancar el servicio

shell> /etc/init.d/solr_tu_apps start
Y desde un navegador acceder a la URL  http://servername:8895/solr/


Acordaros de general una reindexado para tener un INDICE!!!

12.- Tenemos que añadir dos líneas en el contrab para realizar la limpieza de los LOG de SOLR


1 2 * * * root find /var/log/ -ctime +15|grep '\.log'|xargs rm -rf
1 3 * * * root find /solr/apps/ -ctime +5|grep '\.log'|xargs rm -rf

No hay comentarios: