SlideShare una empresa de Scribd logo
1 de 24
Instalación de Storm
Apache Storm
● Storm tiene dos modos de operación local mode y remote mode (cluster).
● El entorno de desarrollo de storm tiene todo lo necesario para desarrollar y
probar topologías storm en modo local.
● Un storm cluster es gestionado por un nodo maestro llamado Nimbus.
● La máquina de desarrollo se comunica con Nimbus y le envía el código
empaquetado en jar y las topologías para ejecutar en el cluster. Nimbus se
encarga de distribuir el código en el cluster y asignar los workers para ejecutar
la topología.
● Para comunicar el entorno de desarrollo con el cluster se utiliza el comando
storm.
Apache Storm en modo local
1. Descargar una release
1. Descomprimir
1. Añadir el directorio bin/ al PATH
1. Confirmar que bin/storm es ejecutable
1. Crear el fichero de configuración local de Storm
~/.storm/storm.yaml
1. Establecer la IP del servidor nimbus.
nimbus.host: localhost
Apache Storm en modo local
7. Iniciar el Zookeeper
zkServer.sh start
8. Iniciar el Nimbus
storm nimbus
9. Iniciar el Supervisor
storm supervisor
Ejecución de topologías
● Storm tiene dos modos de ejecución: local mode y distributed mode.
○ En local mode ejecuta todos los procesos simulando los nodos workers
con threads. El local mode es muy útil para probar y desarrollar
topologías.
○ En distributed mode, Storm se ejecuta en un cluster de máquinas.
Cuando se envía la topología al nodo maestro se adjunta todo el código
necesario para su ejecución. El nodo maestro se ocupa de distribuir el
código y reservar los workers para ejecutar la topología. Si algún worker
se cae el maestro los re-asigna.
Configuración de topologías
Config conf = new Config();
conf.setDebug(true);
conf.setNumWorkers(2);
TOPOLOGY_WORKERS: Indica cuantos procesos se quieren reservar en el
cluster para ejecutar la topología. Cada componte en la topología ejecutará
una serie de hilos. El número de hilos de un componente determinado se
establece en los métodos setBolt y setSpout.
Por ejemplo podemos tener 300 hilos a lo largo de todos los componentes y
50 procesos worker. Por tanto, cada proceso worker ejecutará 6 hilos, cada
uno de los cuales puede pertenecer a un componente distinto.
TOPOLOGY_DEBUG: Cuando se encuentra a true genera un log por cada
mensaje emitido por un componente.
Stream groupings
● Un stream groping indica a la topología como se deben enviar las tuplas
entre dos componentes. Define como el stream se debe particionar entre los
bolts.
1.ShuffleGrouping: envía la tupla a una tarea aleatoria. Tiene el efecto de
distribuir de forma proporcional el procesado de las tuplas. Útil para
operaciones atómicas como operaciones matemáticas.
2.FieldsGrouping: agrupa un stream por un subconjunto de campos. Esto
implica que valores similares vayan a las mismas tareas. FieldsGrouping
está implementado utilizando mod hashing
3. All grouping: El stream se copia en todas las tareas bolt. Hay que
utilizarlo con precaución. Es útil para enviar señales a todos los bolts.
Stream groupings
4. Global grouping: El stream entero va a un solo bolt, en concreto a la tarea
bolt con el ID más bajo.
5. None grouping: Indica que no es relevante el orden, es equivalente a
shuffle grouping.
6. Direct grouping: Un agrupamiento especial. El productor de la tupla
decide que tarea va a consumir la tupla. Direct grouping solo se puede
utilizar en streams declarados como direct streams. Las tuplas emitidas a un
direct stream se deben generar con los métodos emitDirect. Un bolt puede
obtener los ids de los consumidores por medio de TopologyContext.
7. Local grouping: Si el bolt tiene 1 o más tareas en el mismo proceso
worker, las tuplas se mandan a estas tareas intra-proceso.
Linea de comandos: storm
Los parámetros del comando storm son:
1.jar
2.kill
3.activate
4.deactivate
5.rebalance
6.repl
7.classpath
8.localconfvalue
9.remoteconfvalue
10.nimbus
11.supervisor
12.ui
13.drpc
storm jar
● Ejecuta el método main de la clase class con los argumentos especificados.
Se configuran en el classpath los jars de ~/.storm y la configuración.
● El proceso StormSubmitter sube el jar indicado a la hora de enviar la
topología.
storm jar topology-jar-classpath class ...
storm kill
● Termina la topología con el nombre topology-name. Storm primero finaliza
los spouts de la topología y los mensajes que están pendientes de procesar
se procesan.
● A continuación para los workers y limpia su estado. Se puede configurar el
tiempo de desactivación y espera con el flag -w.
storm kill topology-name [-w wait-time-secs]
storm activate/deactivate
● Activa los spouts de la topología especificada.
storm activate topology-name
● Desactiva los spouts de la topología especificada.
storm deactivate topology-name
storm rebalance
● Permite hacer un re-balanceo de la topología cuando se añaden nuevos
nodos al cluster.
● Rebalance primero desactiva la topología en ejecución y después
redistribuye los workers en la nueva configuración del cluster. La topología
se inicia desde su estado previo.
storm rebalance topology-name [-w wait-secs]
storm
● Lanza el demonio supervisor.
storm supervisor
● Lanza el demonio UI. El UI proporciona un interfaz web para storm y
muestra información sobre las topologías en ejecución.
storm ui
● Lanza el demonio Distributed RPC.
storm drpc
Arrancando y parando topologías
en un cluster remoto
● Cuando se desea enviar una topología a un cluster remoto hay que cambiar la
llamada LocalCluster a StormSubmitter e implementar el método submitTopology
que es responsable de enviar la topología al cluster.
● Es necesario establecer la dirección IP del host maestro en ~/.storm/storm.yaml
nimbus.host: "123.45.678.890"
Paralelismo de Topologías
● Storm distingue entre las siguientes 3 entidades:
1. Procesos Worker
2. Executors (threads)
3. Tasks
Paralelismo de Topologías
● Un proceso worker ejecuta un subconjunto de la topología. Un proceso
worker pertenece a una topología determinada y puede ejecutar 1 o más
executors para 1 o más componentes (Spouts o Bolts) de la topología. Una
topología en ejecución consiste en muchos procesos ejecutándose en
muchas máquinas de un cluster Storm.
● Un executor es un hilo que es creado por un proceso worker. Puede
ejecutar 1 o más tareas para el mismo componente (spout o bolt).
Paralelismo de Topologías
● Una task lleva a cabo el procesado de datos. Cada Spout o Bolt
implementado en el código ejecuta todas las tareas necesarias en el cluster.
● El número de tareas de un componente es siempre el mismo a lo largo del
ciclo de vida de la topología, pero el número de executors (threads) para un
componente puede cambiar a lo largo del tiempo.
● La siguiente condición siempre se cumple:
#threads <= #tasks.
● Por defecto el número de tasks es el mismo que el número de executors. Es
decir Storm ejecuta una tarea por hilo.
Paralelismo de Topologías
● Storm tiene el siguiente orden de preferencia en configuración:
defaults.yaml
< storm.yaml
< topology-specific configuration
< internal component-specific configuration
< external component-specific configuration
● Número de procesos worker
Cuantos procesos se crean para la topología a lo largo de las máquinas
del cluster.
Opción de configuración: TOPOLOGY_WORKERS
En código: Config#setNumWorkers
Paralelismo de Topologías
● Número de executors (threads)
○ Cuantos executors se pueden crear por componente.
■ En código: TopologyBuilder#setSpout()
TopologyBuilder#SetBolt()
A partir de storm v0.8 se puede especificar con parallelism_hint el
número de executors para un bolt concreto.
● Número de tareas (tasks)
○ Indica cuantas tareas se pueden crear por componente.
Configuración: TOPOLOGY_TASKS
Código: ComponentConfigurationDeclarer#setNumTasks()
topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)
.setNumTasks(4)
.shuffleGrouping("blue-spout);
Paralelismo de Topologías
Cambiando el paralelismo en ejecución
En Storm es posible modificar el paralelismo de una topología en
ejecución.Lo cual se conoce como rebalancing,
Hay dos opciones para el rebalance:
1. Utilizar el web UI de storm.
2. Utilizar la línea de comandos.
storm rebalance mytopology -n 5 -e blue-spout=3 -e
yellow-bolt=10
Paralelizando spouts
● Se puede paralelizar la entrada a los spouts utilizando la clase
TopologyContext y dividiendo el stream de entrada entre las instancias
disponibles.
public void open(Map conf, TopologyContext context,
SpoutOutputCollector collector) {
//Obtenemos el num de spouts del contexto
int spoutsSize =
context.getComponentTasks(context.getThisComponentId(
)).size();
//Obtenemos el ID de este spout
int myIdx = context.getThisTaskIndex();
String[] tracks = ((String)
conf.get("track")).split(",");
StringBuffer tracksBuffer = new StringBuffer();
for(int i=0; i< tracks.length;i++){
//Comprobamos si este spout debe procesar el stream
If( i % spoutsSize == myIdx){
tracksBuffer.append(",");
tracksBuffer.append(tracks[i]);
}
Stratebi: Quiénes somos
www.TodoBI.com
info@stratebi.co
m
www.stratebi.com
Mas información
Tfno:
91.788.34.10
Madrid: Pº de la Castellana, 164, 1º
Barcelona: C/ Valencia, 63
Brasil: Av. Paulista, 37 4 andar

Más contenido relacionado

La actualidad más candente

Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcionalAlejandra MA
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónjusto morales
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Introducción a la programación paralela
Introducción a la programación paralelaIntroducción a la programación paralela
Introducción a la programación paralelafmayosi
 
REDES NEURONALES Mapas con Características Autoorganizativas Som
REDES NEURONALES Mapas   con Características Autoorganizativas  SomREDES NEURONALES Mapas   con Características Autoorganizativas  Som
REDES NEURONALES Mapas con Características Autoorganizativas SomESCOM
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteJosé Antonio Sandoval Acosta
 
Métodos de explotación subterranea 5ta clase
Métodos de explotación subterranea  5ta claseMétodos de explotación subterranea  5ta clase
Métodos de explotación subterranea 5ta claseFlor Flores Montero
 
Negociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículoNegociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículoDharma Consulting
 
Refactorización (EN ESPANOL)
Refactorización (EN ESPANOL)Refactorización (EN ESPANOL)
Refactorización (EN ESPANOL)Rodrigo Branas
 
Ruby presentacion
Ruby presentacionRuby presentacion
Ruby presentacionhellmanss
 

La actualidad más candente (20)

Lenguaje Ensamblador
Lenguaje EnsambladorLenguaje Ensamblador
Lenguaje Ensamblador
 
Programación lógica y funcional
Programación lógica y funcionalProgramación lógica y funcional
Programación lógica y funcional
 
Lenguaje de programacion ruby
Lenguaje de programacion rubyLenguaje de programacion ruby
Lenguaje de programacion ruby
 
Caracteristicas de Ruby
Caracteristicas de RubyCaracteristicas de Ruby
Caracteristicas de Ruby
 
Conceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programaciónConceptos básicos y metodología de la programación
Conceptos básicos y metodología de la programación
 
Control de proyectos mineros
Control de proyectos minerosControl de proyectos mineros
Control de proyectos mineros
 
Analizador léxico
Analizador léxicoAnalizador léxico
Analizador léxico
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Introducción a la programación paralela
Introducción a la programación paralelaIntroducción a la programación paralela
Introducción a la programación paralela
 
Entrenamiento jk sim blast
Entrenamiento jk sim blastEntrenamiento jk sim blast
Entrenamiento jk sim blast
 
REDES NEURONALES Mapas con Características Autoorganizativas Som
REDES NEURONALES Mapas   con Características Autoorganizativas  SomREDES NEURONALES Mapas   con Características Autoorganizativas  Som
REDES NEURONALES Mapas con Características Autoorganizativas Som
 
Gestión de Portafolio
Gestión de PortafolioGestión de Portafolio
Gestión de Portafolio
 
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrenteTopicos Avanzados de Programacion - Unidad 4 programacion concurrente
Topicos Avanzados de Programacion - Unidad 4 programacion concurrente
 
Algoritmo Bully
Algoritmo BullyAlgoritmo Bully
Algoritmo Bully
 
ALGORITMOS GENETICOS - BUSQUEDA TABÚ
ALGORITMOS GENETICOS - BUSQUEDA TABÚALGORITMOS GENETICOS - BUSQUEDA TABÚ
ALGORITMOS GENETICOS - BUSQUEDA TABÚ
 
Métodos de explotación subterranea 5ta clase
Métodos de explotación subterranea  5ta claseMétodos de explotación subterranea  5ta clase
Métodos de explotación subterranea 5ta clase
 
Negociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículoNegociación en la Gestión de Proyectos-artículo
Negociación en la Gestión de Proyectos-artículo
 
Refactorización (EN ESPANOL)
Refactorización (EN ESPANOL)Refactorización (EN ESPANOL)
Refactorización (EN ESPANOL)
 
Ruby presentacion
Ruby presentacionRuby presentacion
Ruby presentacion
 
11 carguio y-transporte2-new
11 carguio y-transporte2-new11 carguio y-transporte2-new
11 carguio y-transporte2-new
 

Similar a Instalación de Storm en modo local

Similar a Instalación de Storm en modo local (20)

Apache Storm: Introduccion
Apache Storm: IntroduccionApache Storm: Introduccion
Apache Storm: Introduccion
 
Ud3 inocente alcaide
Ud3 inocente alcaideUd3 inocente alcaide
Ud3 inocente alcaide
 
Storm
StormStorm
Storm
 
Thread
ThreadThread
Thread
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Openmp
OpenmpOpenmp
Openmp
 
Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas Forenses
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
 
De Threads a CompletableFutures
De Threads a CompletableFuturesDe Threads a CompletableFutures
De Threads a CompletableFutures
 
Programación multihebra en java
Programación multihebra en javaProgramación multihebra en java
Programación multihebra en java
 
PROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELAPROGRAMACIÓN PARALELA
PROGRAMACIÓN PARALELA
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
 
Lab5 guia
Lab5 guiaLab5 guia
Lab5 guia
 
06 airc firewalls
06 airc   firewalls06 airc   firewalls
06 airc firewalls
 
Terraspace, the definitive terraform framework
Terraspace, the definitive terraform frameworkTerraspace, the definitive terraform framework
Terraspace, the definitive terraform framework
 
Concurrencia en Java
Concurrencia en Java Concurrencia en Java
Concurrencia en Java
 
DefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJava
 
Multitarea
MultitareaMultitarea
Multitarea
 

Más de Stratebi

Destinos turisticos inteligentes
Destinos turisticos inteligentesDestinos turisticos inteligentes
Destinos turisticos inteligentesStratebi
 
Azure Synapse
Azure SynapseAzure Synapse
Azure SynapseStratebi
 
Options for Dashboards with Python
Options for Dashboards with PythonOptions for Dashboards with Python
Options for Dashboards with PythonStratebi
 
Dashboards with Python
Dashboards with PythonDashboards with Python
Dashboards with PythonStratebi
 
PowerBI Tips y buenas practicas
PowerBI Tips y buenas practicasPowerBI Tips y buenas practicas
PowerBI Tips y buenas practicasStratebi
 
Machine Learning Meetup Spain
Machine Learning Meetup SpainMachine Learning Meetup Spain
Machine Learning Meetup SpainStratebi
 
LinceBI IIoT (Industrial Internet of Things)
LinceBI IIoT (Industrial Internet of Things)LinceBI IIoT (Industrial Internet of Things)
LinceBI IIoT (Industrial Internet of Things)Stratebi
 
SAP - PowerBI integration
SAP - PowerBI integrationSAP - PowerBI integration
SAP - PowerBI integrationStratebi
 
Aplicaciones Big Data Marketing
Aplicaciones Big Data MarketingAplicaciones Big Data Marketing
Aplicaciones Big Data MarketingStratebi
 
A federated information infrastructure that works
A federated information infrastructure that works A federated information infrastructure that works
A federated information infrastructure that works Stratebi
 
9 problemas en proyectos Data Analytics
9 problemas en proyectos Data Analytics9 problemas en proyectos Data Analytics
9 problemas en proyectos Data AnalyticsStratebi
 
PowerBI: Soluciones, Aplicaciones y Cursos
PowerBI: Soluciones, Aplicaciones y CursosPowerBI: Soluciones, Aplicaciones y Cursos
PowerBI: Soluciones, Aplicaciones y CursosStratebi
 
Sports Analytics
Sports AnalyticsSports Analytics
Sports AnalyticsStratebi
 
Vertica Extreme Analysis
Vertica Extreme AnalysisVertica Extreme Analysis
Vertica Extreme AnalysisStratebi
 
Businesss Intelligence con Vertica y PowerBI
Businesss Intelligence con Vertica y PowerBIBusinesss Intelligence con Vertica y PowerBI
Businesss Intelligence con Vertica y PowerBIStratebi
 
Vertica Analytics Database general overview
Vertica Analytics Database general overviewVertica Analytics Database general overview
Vertica Analytics Database general overviewStratebi
 
Talend Cloud en detalle
Talend Cloud en detalleTalend Cloud en detalle
Talend Cloud en detalleStratebi
 
Master Data Management (MDM) con Talend
Master Data Management (MDM) con TalendMaster Data Management (MDM) con Talend
Master Data Management (MDM) con TalendStratebi
 
Talend Introducion
Talend IntroducionTalend Introducion
Talend IntroducionStratebi
 
Talent Analytics
Talent AnalyticsTalent Analytics
Talent AnalyticsStratebi
 

Más de Stratebi (20)

Destinos turisticos inteligentes
Destinos turisticos inteligentesDestinos turisticos inteligentes
Destinos turisticos inteligentes
 
Azure Synapse
Azure SynapseAzure Synapse
Azure Synapse
 
Options for Dashboards with Python
Options for Dashboards with PythonOptions for Dashboards with Python
Options for Dashboards with Python
 
Dashboards with Python
Dashboards with PythonDashboards with Python
Dashboards with Python
 
PowerBI Tips y buenas practicas
PowerBI Tips y buenas practicasPowerBI Tips y buenas practicas
PowerBI Tips y buenas practicas
 
Machine Learning Meetup Spain
Machine Learning Meetup SpainMachine Learning Meetup Spain
Machine Learning Meetup Spain
 
LinceBI IIoT (Industrial Internet of Things)
LinceBI IIoT (Industrial Internet of Things)LinceBI IIoT (Industrial Internet of Things)
LinceBI IIoT (Industrial Internet of Things)
 
SAP - PowerBI integration
SAP - PowerBI integrationSAP - PowerBI integration
SAP - PowerBI integration
 
Aplicaciones Big Data Marketing
Aplicaciones Big Data MarketingAplicaciones Big Data Marketing
Aplicaciones Big Data Marketing
 
A federated information infrastructure that works
A federated information infrastructure that works A federated information infrastructure that works
A federated information infrastructure that works
 
9 problemas en proyectos Data Analytics
9 problemas en proyectos Data Analytics9 problemas en proyectos Data Analytics
9 problemas en proyectos Data Analytics
 
PowerBI: Soluciones, Aplicaciones y Cursos
PowerBI: Soluciones, Aplicaciones y CursosPowerBI: Soluciones, Aplicaciones y Cursos
PowerBI: Soluciones, Aplicaciones y Cursos
 
Sports Analytics
Sports AnalyticsSports Analytics
Sports Analytics
 
Vertica Extreme Analysis
Vertica Extreme AnalysisVertica Extreme Analysis
Vertica Extreme Analysis
 
Businesss Intelligence con Vertica y PowerBI
Businesss Intelligence con Vertica y PowerBIBusinesss Intelligence con Vertica y PowerBI
Businesss Intelligence con Vertica y PowerBI
 
Vertica Analytics Database general overview
Vertica Analytics Database general overviewVertica Analytics Database general overview
Vertica Analytics Database general overview
 
Talend Cloud en detalle
Talend Cloud en detalleTalend Cloud en detalle
Talend Cloud en detalle
 
Master Data Management (MDM) con Talend
Master Data Management (MDM) con TalendMaster Data Management (MDM) con Talend
Master Data Management (MDM) con Talend
 
Talend Introducion
Talend IntroducionTalend Introducion
Talend Introducion
 
Talent Analytics
Talent AnalyticsTalent Analytics
Talent Analytics
 

Último

LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechojuliosabino1
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docxmarthaarroyo16
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfIrapuatoCmovamos
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicaciónJonathanAntonioMaldo
 
CAPACITACION_higiene_industrial (1).ppt...
CAPACITACION_higiene_industrial (1).ppt...CAPACITACION_higiene_industrial (1).ppt...
CAPACITACION_higiene_industrial (1).ppt...jhoecabanillas12
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitariachayananazcosimeon
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresamerca6
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosssuser948499
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria deCalet Cáceres Vergara
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfIrapuatoCmovamos
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfEDUARDO MAMANI MAMANI
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfGEINER22
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)estebancitoherrera
 
que son los planes de ordenamiento predial POP.pptx
que son los planes de ordenamiento predial  POP.pptxque son los planes de ordenamiento predial  POP.pptx
que son los planes de ordenamiento predial POP.pptxSergiothaine2
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptxccordovato
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,juberrodasflores
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfluisccollana
 

Último (17)

LA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derechoLA LEY DE LAS XII TABLAS en el curso de derecho
LA LEY DE LAS XII TABLAS en el curso de derecho
 
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
17 PRACTICAS - MODALIDAAD FAMILIAAR.docx
 
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdfREPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
REPORTE-HEMEROGRÁFICO-MARZO-2024-IRAPUATO-¿CÓMO VAMOS?.pdf
 
tipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicacióntipos de organización y sus objetivos y aplicación
tipos de organización y sus objetivos y aplicación
 
CAPACITACION_higiene_industrial (1).ppt...
CAPACITACION_higiene_industrial (1).ppt...CAPACITACION_higiene_industrial (1).ppt...
CAPACITACION_higiene_industrial (1).ppt...
 
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior UniversitariaSUNEDU - Superintendencia Nacional de Educación superior Universitaria
SUNEDU - Superintendencia Nacional de Educación superior Universitaria
 
La importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresaLa importancia de las pruebas de producto para tu empresa
La importancia de las pruebas de producto para tu empresa
 
Data Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datosData Warehouse.gestion de bases de datos
Data Warehouse.gestion de bases de datos
 
bases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria debases-cye-2024(2) una sola descarga en base de feria de
bases-cye-2024(2) una sola descarga en base de feria de
 
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdfREPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
REPORTE DE INCIDENCIA DELICTIVA MARZO 2024.pdf
 
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdfCUESTIONARIO A ADICCION A REDES SOCIALES.pdf
CUESTIONARIO A ADICCION A REDES SOCIALES.pdf
 
HABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdfHABILESASAMBLEA Para negocios independientes.pdf
HABILESASAMBLEA Para negocios independientes.pdf
 
El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)El Teatro musical (qué es, cuál es su historia y trayectoria...)
El Teatro musical (qué es, cuál es su historia y trayectoria...)
 
que son los planes de ordenamiento predial POP.pptx
que son los planes de ordenamiento predial  POP.pptxque son los planes de ordenamiento predial  POP.pptx
que son los planes de ordenamiento predial POP.pptx
 
2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx2024 2024 202420242024PPT SESIÓN 03.pptx
2024 2024 202420242024PPT SESIÓN 03.pptx
 
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
Ivu- taller de diseño arquitectonico l , adicion y sustraccion de cubos,
 
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdfPREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
PREGRADO-PRESENCIAL-FASE-C-202401 (1).pdf
 

Instalación de Storm en modo local

  • 2. Apache Storm ● Storm tiene dos modos de operación local mode y remote mode (cluster). ● El entorno de desarrollo de storm tiene todo lo necesario para desarrollar y probar topologías storm en modo local. ● Un storm cluster es gestionado por un nodo maestro llamado Nimbus. ● La máquina de desarrollo se comunica con Nimbus y le envía el código empaquetado en jar y las topologías para ejecutar en el cluster. Nimbus se encarga de distribuir el código en el cluster y asignar los workers para ejecutar la topología. ● Para comunicar el entorno de desarrollo con el cluster se utiliza el comando storm.
  • 3. Apache Storm en modo local 1. Descargar una release 1. Descomprimir 1. Añadir el directorio bin/ al PATH 1. Confirmar que bin/storm es ejecutable 1. Crear el fichero de configuración local de Storm ~/.storm/storm.yaml 1. Establecer la IP del servidor nimbus. nimbus.host: localhost
  • 4. Apache Storm en modo local 7. Iniciar el Zookeeper zkServer.sh start 8. Iniciar el Nimbus storm nimbus 9. Iniciar el Supervisor storm supervisor
  • 5. Ejecución de topologías ● Storm tiene dos modos de ejecución: local mode y distributed mode. ○ En local mode ejecuta todos los procesos simulando los nodos workers con threads. El local mode es muy útil para probar y desarrollar topologías. ○ En distributed mode, Storm se ejecuta en un cluster de máquinas. Cuando se envía la topología al nodo maestro se adjunta todo el código necesario para su ejecución. El nodo maestro se ocupa de distribuir el código y reservar los workers para ejecutar la topología. Si algún worker se cae el maestro los re-asigna.
  • 6. Configuración de topologías Config conf = new Config(); conf.setDebug(true); conf.setNumWorkers(2); TOPOLOGY_WORKERS: Indica cuantos procesos se quieren reservar en el cluster para ejecutar la topología. Cada componte en la topología ejecutará una serie de hilos. El número de hilos de un componente determinado se establece en los métodos setBolt y setSpout. Por ejemplo podemos tener 300 hilos a lo largo de todos los componentes y 50 procesos worker. Por tanto, cada proceso worker ejecutará 6 hilos, cada uno de los cuales puede pertenecer a un componente distinto. TOPOLOGY_DEBUG: Cuando se encuentra a true genera un log por cada mensaje emitido por un componente.
  • 7. Stream groupings ● Un stream groping indica a la topología como se deben enviar las tuplas entre dos componentes. Define como el stream se debe particionar entre los bolts. 1.ShuffleGrouping: envía la tupla a una tarea aleatoria. Tiene el efecto de distribuir de forma proporcional el procesado de las tuplas. Útil para operaciones atómicas como operaciones matemáticas. 2.FieldsGrouping: agrupa un stream por un subconjunto de campos. Esto implica que valores similares vayan a las mismas tareas. FieldsGrouping está implementado utilizando mod hashing 3. All grouping: El stream se copia en todas las tareas bolt. Hay que utilizarlo con precaución. Es útil para enviar señales a todos los bolts.
  • 8. Stream groupings 4. Global grouping: El stream entero va a un solo bolt, en concreto a la tarea bolt con el ID más bajo. 5. None grouping: Indica que no es relevante el orden, es equivalente a shuffle grouping. 6. Direct grouping: Un agrupamiento especial. El productor de la tupla decide que tarea va a consumir la tupla. Direct grouping solo se puede utilizar en streams declarados como direct streams. Las tuplas emitidas a un direct stream se deben generar con los métodos emitDirect. Un bolt puede obtener los ids de los consumidores por medio de TopologyContext. 7. Local grouping: Si el bolt tiene 1 o más tareas en el mismo proceso worker, las tuplas se mandan a estas tareas intra-proceso.
  • 9. Linea de comandos: storm Los parámetros del comando storm son: 1.jar 2.kill 3.activate 4.deactivate 5.rebalance 6.repl 7.classpath 8.localconfvalue 9.remoteconfvalue 10.nimbus 11.supervisor 12.ui 13.drpc
  • 10. storm jar ● Ejecuta el método main de la clase class con los argumentos especificados. Se configuran en el classpath los jars de ~/.storm y la configuración. ● El proceso StormSubmitter sube el jar indicado a la hora de enviar la topología. storm jar topology-jar-classpath class ...
  • 11. storm kill ● Termina la topología con el nombre topology-name. Storm primero finaliza los spouts de la topología y los mensajes que están pendientes de procesar se procesan. ● A continuación para los workers y limpia su estado. Se puede configurar el tiempo de desactivación y espera con el flag -w. storm kill topology-name [-w wait-time-secs]
  • 12. storm activate/deactivate ● Activa los spouts de la topología especificada. storm activate topology-name ● Desactiva los spouts de la topología especificada. storm deactivate topology-name
  • 13. storm rebalance ● Permite hacer un re-balanceo de la topología cuando se añaden nuevos nodos al cluster. ● Rebalance primero desactiva la topología en ejecución y después redistribuye los workers en la nueva configuración del cluster. La topología se inicia desde su estado previo. storm rebalance topology-name [-w wait-secs]
  • 14. storm ● Lanza el demonio supervisor. storm supervisor ● Lanza el demonio UI. El UI proporciona un interfaz web para storm y muestra información sobre las topologías en ejecución. storm ui ● Lanza el demonio Distributed RPC. storm drpc
  • 15. Arrancando y parando topologías en un cluster remoto ● Cuando se desea enviar una topología a un cluster remoto hay que cambiar la llamada LocalCluster a StormSubmitter e implementar el método submitTopology que es responsable de enviar la topología al cluster. ● Es necesario establecer la dirección IP del host maestro en ~/.storm/storm.yaml nimbus.host: "123.45.678.890"
  • 16. Paralelismo de Topologías ● Storm distingue entre las siguientes 3 entidades: 1. Procesos Worker 2. Executors (threads) 3. Tasks
  • 17. Paralelismo de Topologías ● Un proceso worker ejecuta un subconjunto de la topología. Un proceso worker pertenece a una topología determinada y puede ejecutar 1 o más executors para 1 o más componentes (Spouts o Bolts) de la topología. Una topología en ejecución consiste en muchos procesos ejecutándose en muchas máquinas de un cluster Storm. ● Un executor es un hilo que es creado por un proceso worker. Puede ejecutar 1 o más tareas para el mismo componente (spout o bolt).
  • 18. Paralelismo de Topologías ● Una task lleva a cabo el procesado de datos. Cada Spout o Bolt implementado en el código ejecuta todas las tareas necesarias en el cluster. ● El número de tareas de un componente es siempre el mismo a lo largo del ciclo de vida de la topología, pero el número de executors (threads) para un componente puede cambiar a lo largo del tiempo. ● La siguiente condición siempre se cumple: #threads <= #tasks. ● Por defecto el número de tasks es el mismo que el número de executors. Es decir Storm ejecuta una tarea por hilo.
  • 19. Paralelismo de Topologías ● Storm tiene el siguiente orden de preferencia en configuración: defaults.yaml < storm.yaml < topology-specific configuration < internal component-specific configuration < external component-specific configuration ● Número de procesos worker Cuantos procesos se crean para la topología a lo largo de las máquinas del cluster. Opción de configuración: TOPOLOGY_WORKERS En código: Config#setNumWorkers
  • 20. Paralelismo de Topologías ● Número de executors (threads) ○ Cuantos executors se pueden crear por componente. ■ En código: TopologyBuilder#setSpout() TopologyBuilder#SetBolt() A partir de storm v0.8 se puede especificar con parallelism_hint el número de executors para un bolt concreto. ● Número de tareas (tasks) ○ Indica cuantas tareas se pueden crear por componente. Configuración: TOPOLOGY_TASKS Código: ComponentConfigurationDeclarer#setNumTasks() topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2) .setNumTasks(4) .shuffleGrouping("blue-spout);
  • 22. Cambiando el paralelismo en ejecución En Storm es posible modificar el paralelismo de una topología en ejecución.Lo cual se conoce como rebalancing, Hay dos opciones para el rebalance: 1. Utilizar el web UI de storm. 2. Utilizar la línea de comandos. storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
  • 23. Paralelizando spouts ● Se puede paralelizar la entrada a los spouts utilizando la clase TopologyContext y dividiendo el stream de entrada entre las instancias disponibles. public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { //Obtenemos el num de spouts del contexto int spoutsSize = context.getComponentTasks(context.getThisComponentId( )).size(); //Obtenemos el ID de este spout int myIdx = context.getThisTaskIndex(); String[] tracks = ((String) conf.get("track")).split(","); StringBuffer tracksBuffer = new StringBuffer(); for(int i=0; i< tracks.length;i++){ //Comprobamos si este spout debe procesar el stream If( i % spoutsSize == myIdx){ tracksBuffer.append(","); tracksBuffer.append(tracks[i]); }
  • 24. Stratebi: Quiénes somos www.TodoBI.com info@stratebi.co m www.stratebi.com Mas información Tfno: 91.788.34.10 Madrid: Pº de la Castellana, 164, 1º Barcelona: C/ Valencia, 63 Brasil: Av. Paulista, 37 4 andar