En esta guía vamos a explicar los comandos básicos de Apache Ignite y la forma de desplegar un clúster local para proyectos Big Data o su uso como caché de datos.
En Apache Ignite, los nodos se autodescubren y trabajan juntos. Con el siguiente ejemplo vamos a aprender cómo ejecutar un mini-clúster local de Apache Ignite.
Descargamos los binarios de la última versión de Apache Ignite de la web.
Para poder ejecutar Apache Ignite, debemos tener Java instalado, y la variable de entorno JAVA_HOME establecida correctamente.
java -version
Extraemos el fichero descargado (.zip). Para ello podemos usar el comando:
unzip apache-ignite-x.x.x-bin.zip
benchmarks bin config docs examples libs LICENSE MIGRATION_GUIDE.txt NOTICE platforms README.txt RELEASE_NOTES.txt
El siguiente paso consiste en arrancar un nodo local de Ignite. Para ello usamos el script ignite.sh y le pasamos como parámetro la configuración de ejemplo que se proporciona. Podemos ver en la última línea que se indica el número de servidores que componen el clúster, en nuestro caso servers=1
./bin/ignite.sh examples/config/example-ignite.xml
[12:08:40] __________ ________________
[12:08:40] / _/ ___/ |/ / _/_ __/ __/
[12:08:40] _/ // (7 7 // / / / / _/
[12:08:40] /___/\___/_/|_/___/ /_/ /___/
[12:08:40]
[12:08:40] ver. 2.7.6#20190911-sha1:21f7ca41
[12:08:40] 2019 Copyright(C) Apache Software Foundation
[12:08:40]
[12:08:40] Ignite documentation: http://ignite.apache.org
[12:08:40]
[12:08:40] Quiet mode.
[...]
[12:08:43] Ignite node started OK (id=8c96d1df)
[12:08:46] Topology snapshot [ver=1, locNode=8c96d1df, servers=1, clients=0, state=ACTIVE, CPUs=8, offheap=3.1GB, heap=3.4GB]
Si abrimos una nueva terminal y lanzamos otra instancia con el mismo comando observamos que se incrementa este número, lo que indica que estos nodos se han autodescubierto y ahora trabajan juntos:
[12:16:18] Topology snapshot [ver=2, locNode=d936483a, servers=2, clients=0, state=ACTIVE, CPUs=8, offheap=6.1GB, heap=6.8GB]
Ignite también dispone de una herramienta de línea de comandos de administración (Visor Command Line Interface). Esta herramienta nos puede proporcionar información de los nodos del clúster, sus estadísticas, métricas de caché y detalles de la topología
./ignitevisorcmd.sh
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
___ _________________________ ________
__ | / /____ _/__ ___/__ __ \___ __ \
__ | / / __ / _____ \ _ / / /__ /_/ /
__ |/ / __/ / ____/ / / /_/ / _ _, _/
_____/ /___/ /____/ \____/ /_/ |_|
ADMIN CONSOLE
2019 Copyright(C) Apache Software Foundation
+-------------------------------------+
| Status | Disconnected |
| Ignite instance name | <n/a> |
| Config path | <n/a> |
| Uptime | <n/a> |
+-------------------------------------+
Type 'help' for more information.
Type 'open' to join the grid.
Type 'quit' to quit form Visor console.
visor> open
Local configuration files:
+==========================================================================================+
| # | Configuration File |
+==========================================================================================+
| 0 | config/default-config.xml |
| 1 | benchmarks/config/ignite-base-config.xml |
| 2 | benchmarks/config/ignite-localhost-config.xml |
| 3 | benchmarks/config/ignite-multicast-config.xml |
| 4 | benchmarks/config/ignite-remote-config.xml |
| 5 | benchmarks/sources/config/ignite-base-config.xml |
| 6 | benchmarks/sources/config/ignite-localhost-config.xml |
| 7 | benchmarks/sources/config/ignite-multicast-config.xml |
| 8 | benchmarks/sources/config/ignite-remote-config.xml |
| 9 | (?) config/router/default-router.xml |
| 10 | examples/config/encryption/example-encrypted-store.xml |
| 11 | examples/config/example-cache.xml |
| 12 | examples/config/example-data-regions.xml |
| 13 | examples/config/example-default.xml |
| 14 | (?) examples/config/example-ignite.xml |
| 15 | examples/config/filesystem/example-igfs.xml |
| 16 | examples/config/persistentstore/example-persistent-store.xml |
| 17 | examples/config/redis/example-redis.xml |
| 18 | examples/config/spark/example-shared-rdd.xml |
| 19 | examples/src/main/java/org/apache/ignite/examples/misc/springbean/spring-bean.xml |
| 20 | platforms/cpp/examples/compute-example/config/compute-example.xml |
| 21 | platforms/cpp/examples/continuous-query-example/config/continuous-query-example.xml |
| 22 | platforms/cpp/examples/odbc-example/config/example-odbc.xml |
| 23 | platforms/cpp/examples/put-get-example/config/example-cache.xml |
| 24 | platforms/cpp/examples/query-example/config/query-example.xml |
+------------------------------------------------------------------------------------------+
Choose configuration file number ('c' to cancel) [0]: 14
[...]
[12:26:14] Ignite node started OK (id=39c45d7c)
Some useful commands:
+--------------------------------------------+
| Type 'top' | to see full topology. |
| Type 'node' | to see node statistics. |
| Type 'cache' | to see cache statistics. |
| Type 'tasks' | to see tasks statistics. |
| Type 'config' | to see node configuration. |
+--------------------------------------------+
Type 'help' to get help.
+-------------------------------------------------------------------------------------------------------------+
| Status | Connected |
[...]
En este punto tenemos un clúster de dos nodos locales. En artículos futuros exploraremos la manera de cargar y procesar datos, así como hacer uso de la caché.
Formación de Apache Ignite
Aquí tienes dos libros que te recomiendo para continuar aprendiendo Apache Ignite a fondo:
- El libro de Apache Ignite
- Guía de inicio rápido de Apache Ignite: procesamiento y almacenamiento en caché de datos distribuidos de forma sencilla