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

4. La Placa Base, El Chipset Y La Eprom
4. La Placa Base, El Chipset Y La Eprom4. La Placa Base, El Chipset Y La Eprom
4. La Placa Base, El Chipset Y La Eprom
CANDIDO RUIZ
 
01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos
01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos
01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos
José M. Padilla
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
eduardoed5
 

La actualidad más candente (20)

Paso 2 diana_cuelar
Paso 2 diana_cuelarPaso 2 diana_cuelar
Paso 2 diana_cuelar
 
Registo de equipos
Registo de equiposRegisto de equipos
Registo de equipos
 
Clonacion del disco duro
Clonacion del disco duroClonacion del disco duro
Clonacion del disco duro
 
Presupuesto Computadora de oficina
Presupuesto Computadora de oficinaPresupuesto Computadora de oficina
Presupuesto Computadora de oficina
 
Servidor de datos
Servidor de datosServidor de datos
Servidor de datos
 
Los navegadores web
Los navegadores webLos navegadores web
Los navegadores web
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
Evolución de los sistemas de comunicación
Evolución de los sistemas de comunicaciónEvolución de los sistemas de comunicación
Evolución de los sistemas de comunicación
 
Windows server 2012 r2
Windows server 2012 r2Windows server 2012 r2
Windows server 2012 r2
 
Tecnologia SCSI
Tecnologia SCSITecnologia SCSI
Tecnologia SCSI
 
Extensiones de archivo
Extensiones de archivoExtensiones de archivo
Extensiones de archivo
 
Case y sus partes
Case y sus partesCase y sus partes
Case y sus partes
 
4. La Placa Base, El Chipset Y La Eprom
4. La Placa Base, El Chipset Y La Eprom4. La Placa Base, El Chipset Y La Eprom
4. La Placa Base, El Chipset Y La Eprom
 
01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos
01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos
01. Iniciacion A La Informatica. Los Elementos BáSicos Y Primeros Pasos
 
Mapa android
Mapa androidMapa android
Mapa android
 
Crear Carpetas
Crear CarpetasCrear Carpetas
Crear Carpetas
 
AD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidosAD Unidad2: Diseño de programas paralelos y distribuidos
AD Unidad2: Diseño de programas paralelos y distribuidos
 
Topologías de redes windows y linux.
Topologías de redes windows y linux.Topologías de redes windows y linux.
Topologías de redes windows y linux.
 
Gestión de archivos
Gestión de archivosGestión de archivos
Gestión de archivos
 
Segmentacion de memoria
Segmentacion de memoriaSegmentacion de memoria
Segmentacion de memoria
 

Similar a Apache Storm: Instalación

Evasión de Técnicas Forenses
Evasión de Técnicas ForensesEvasión de Técnicas Forenses
Evasión de Técnicas Forenses
Conferencias FIST
 
Programación multitarea
Programación multitareaProgramación multitarea
Programación multitarea
bowelmx
 
Sistemas operativos unidad 2
Sistemas operativos unidad 2Sistemas operativos unidad 2
Sistemas operativos unidad 2
Luis Cigarroa
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
 
S Incronizacion De Procesos
S Incronizacion De ProcesosS Incronizacion De Procesos
S Incronizacion De Procesos
AcristyM
 
DefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJavaDefinicionExplicacionEjemplosdeHilosenJava
DefinicionExplicacionEjemplosdeHilosenJava
DanielCorzo12
 

Similar a Apache Storm: Instalación (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

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

metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
MedicinaInternaresid1
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
BESTTech1
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
JC Díaz Herrera
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
ssuserbdc329
 

Último (20)

metodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un pacientemetodo SOAP utilizado para evaluar el estado de un paciente
metodo SOAP utilizado para evaluar el estado de un paciente
 
Evolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdfEvolución de la fortuna de la familia Slim (1994-2024).pdf
Evolución de la fortuna de la familia Slim (1994-2024).pdf
 
Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1Alfredo Gabriel Rodriguez Yajure Tarea#1
Alfredo Gabriel Rodriguez Yajure Tarea#1
 
Análisis del Modo y Efecto de Fallas AMEF.ppt
Análisis del Modo y Efecto de Fallas AMEF.pptAnálisis del Modo y Efecto de Fallas AMEF.ppt
Análisis del Modo y Efecto de Fallas AMEF.ppt
 
variables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpointvariables-estadisticas. Presentación powerpoint
variables-estadisticas. Presentación powerpoint
 
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
Cesar Vilchis Vieyra  Cesar Vilchis VieyraCesar Vilchis Vieyra  Cesar Vilchis Vieyra
Cesar Vilchis Vieyra Cesar Vilchis Vieyra
 
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILASistema Nacional de Vigilancia en Salud Pública SIVIGILA
Sistema Nacional de Vigilancia en Salud Pública SIVIGILA
 
Investigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdfInvestigacion cualitativa y cuantitativa....pdf
Investigacion cualitativa y cuantitativa....pdf
 
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdfCALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
CALENDARIZACIÓN ACTUALIZADA DEL 2024 alt.pdf
 
Adultos Mayores más de 60 años como de la población total (2024).pdf
Adultos Mayores más de 60 años como  de la población total (2024).pdfAdultos Mayores más de 60 años como  de la población total (2024).pdf
Adultos Mayores más de 60 años como de la población total (2024).pdf
 
Conversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latinoConversacion.pptx en guarani boliviano latino
Conversacion.pptx en guarani boliviano latino
 
Los idiomas más hablados en el mundo (2024).pdf
Los idiomas más hablados en el mundo  (2024).pdfLos idiomas más hablados en el mundo  (2024).pdf
Los idiomas más hablados en el mundo (2024).pdf
 
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdfReservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
Reservas de divisas y oro en México en sexenio de AMLO (2018-2024).pdf
 
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdfLos más ricos administradores de fondo de cobertura (1968-2024).pdf
Los más ricos administradores de fondo de cobertura (1968-2024).pdf
 
procedimiento paran la planificación en los centros educativos tipo v(multig...
procedimiento  paran la planificación en los centros educativos tipo v(multig...procedimiento  paran la planificación en los centros educativos tipo v(multig...
procedimiento paran la planificación en los centros educativos tipo v(multig...
 
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombiadecreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
decreto 2090 de 2003.pdf actividades de alto riesgo en Colombia
 
Letra de cambio definición y características.ppt
Letra de cambio definición y características.pptLetra de cambio definición y características.ppt
Letra de cambio definición y características.ppt
 
Las marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdfLas marcas automotrices con más ventas de vehículos (2024).pdf
Las marcas automotrices con más ventas de vehículos (2024).pdf
 
Perú en el ranking mundial, segun datos mineria
Perú en el ranking mundial, segun datos mineriaPerú en el ranking mundial, segun datos mineria
Perú en el ranking mundial, segun datos mineria
 
diseño de una linea de produccion de jabon liquido.pptx
diseño de una linea de produccion de jabon liquido.pptxdiseño de una linea de produccion de jabon liquido.pptx
diseño de una linea de produccion de jabon liquido.pptx
 

Apache Storm: Instalación

  • 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