Empezando con Neo4j (Instalación)

Resulta que un día andaba en twitter y alguien puso algo de otros motores de bd y descubrí las Graph Database, que a falta de traducción mejor sería: “Base de datos en grafos”.

Me llamó la atención y empecé a buscar información. Así llegué a Neo4j, que es como la más publicitada BD que trabaja en grafos. Ellos mismos tienen unos videos en su página y como estoy haciendo un sistema de peluquería para mi esposa, decidí de empezar de nuevo, pero en vez de usar MySQL, con Neo4j.

La idea es que busquen info ustedes mismos, pero a modo de resumen, la gracias es que los datos se almecenan de la misma forma en que harías un diseño en una pizarra.

De esa forma, es más fácil de entender para una persona que no está en el ámbito de las BD. Pero no es solamente eso, considera que si es más fácil de diseñar, será más fácil de pensar al programar😀

Y al momento de llamar los datos, es más rápido por el simple hecho de no saltar de tabla en tabla buscando los registros en un join.

En cambio, usando grafos

to_graph_model

Aquí otro ejemplo

Captura
Listo, a instalarlo.

En mi caso lo estoy instalando en un Centos 7 x86_64. Si usan Debian/Ubuntu, Neo4j tiene su paquete correspondiente… pero para el resto, hay que bajar el tar.gz.

En este momento, la última versión (community) se descarga aquí. Luego un tar -xf neo4j_XXXX.tar.gz es suficiente. Al ejecutar el archivo bin/neo4j se ocupa el parámetro start para iniciarlo en segundo plano, o console para mironear todo lo que pase.

Al momento de abrirlo, tengo lo siguiente:

[root@luk0s neo4j-community-3.0.4]# ./bin/neo4j start
Starting Neo4j.
WARNING: Max 1024 open files allowed, minimum of 40000 recommended. See the Neo4j manual.
Started neo4j (pid 30355). By default, it is available at http://localhost:7474/
There may be a short delay until the server is ready.
See /opt/neo4j-community-3.0.4/logs/neo4j.log for current status.

El mensaje que indica el máximo de archivos abiertos es porque, en grafos, la cantidad de índices que son leídos son muchos más que 1K. También depende de la cantidad de conexiones que podríamos esperar. Para aumentar ese valor:

  1. Terminar proceso neo4j: ./bin/neo4j stop
  2. Editar /etc/security/limits.conf
  3. Agregar las 2 siguientes líneas
    1. neo4j soft nofile 40000
    2. neo4j hard nofile 40000
  4. Guardar
  5. Editar /etc/pam.d/su
  6. Agregar la siguiente línea
    1. session required pam_limits.so
  7. Guardar y reiniciar máquina

Obviamente lo anterior como root. Al iniciar nuevamente, el mensaje ya no existe.

Ahora tenemos el servicio corriendo. Para comprobarlo con un curl:

[root@luk0s neo4j-community-3.0.4]# curl http://localhost:7474
{
"management" : "http://localhost:7474/db/manage/",
"data" : "http://localhost:7474/db/data/"
}

Pero al intentar ir a la web desde el navegador, no podía acceder. Debería ser así, accesible únicamente desde localhost y entrar por un tunnel. En mi caso, no necesito taaanta seguridad así que lo dejo abierto para todos.

Entonces, detenemos el servicio:

[root@luk0s neo4j-community-3.0.4]# ./bin/neo4j stop

Luego editamos el archivo $NEO4J_HOME/conf/neo4j.conf , buscamos la línea dbms.connector.http.address=localhost:7473 y en vez de localhost => 0.0.0.0. Lo mismo para los siguientes puertos.

Por último, en caso de ser necesario, abrir el puerto 7474 (http), 7473 (https) y 7687 (Bolt, un ‘driver’):

firewall-cmd --permanent --zone=public --add-port=7474/tcp
firewall-cmd --permanent --zone=public --add-port=7473/tcp
firewall-cmd --permanent --zone=public --add-port=7687/tcp
firewall-cmd --reload

Listo!

Captura

Ahora le asignamos una contraseña y estamos listos.

Para mayor info, siempre a la raíz

http://neo4j.com/docs/operations-manual/3.0/deployment/

Acerca de MaritoCares

Ingeniero Informático. Con tendencias a la programación en [C#, VB].NET, Java(Web principalmente...), PHP, JavaScript, algo mínimo de [ruby, python], y el clásico C.
Esta entrada fue publicada en Bases de Datos, Centos, Neo4j, Tutoriales y etiquetada , . Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s