Está en la página 1de 16

Pulsar y Apache Apex.

1 / 16

Apache pulsar es un sistema de mensajería de publicación de nivel empresarial desarrollado


originalmente en Yahoo y ahora se está desarrollando bajo la fundación Apache. En Yahoo, Pulsar
ha estado en producción durante mas de tres años.

Apache Pulsar es una solución multi-tenant, de alto rendimiento para servicios de mensajería
servidor-servidor.

1 Siguiente
1 / 16
Pulsar y Apache Apex.

3 / 16

Funciones de Apache Pulsar (Pulsar Functions)

Las funciones de Apache Pulsar son pequeños procesos que:

1. Consumen mensajes de uno o más temas de Pulsar.


2. Aplican una lógica que proporciona el usuario al procesamiento de cada mensaje.
3. Publican en otro tema los resultados del cálculo.

En la siguiente imagen se puede ver un ejemplo de función Pulsar escrita en lenguaje Java:

Ejemplo Funcion Apache Pulsar con Java

Estas funciones son ejecutadas siempre que es publicado un mensaje en el tema de entrada.

Anterior 1 2 3 Siguiente
3 / 16
Pulsar y Apache Apex.

4 / 16

Metas

El objetivo de las funciones Pulsar es crear, de una forma fácil, una lógica de procesamiento a
cualquier nivel sin implementar un sistema vecino (Ej: Apache Storm).

Pulsar Functions es, en esencia, una plataforma de cómputo que queda a su disposición como
parte de su sistema de mensajería Pulsar.

Este objetivo está vinculado a otra serie de objetivos como son:

1. Solución fácil a los problemas.


2. Productividad del desarrollador.
3. Simplicidad operativa.

Programación

Anterior 1 2 3 4 Siguiente

4 / 16
Pulsar y Apache Apex.

5 / 16

Modelo de programación

El modelo de programación central que Pulsar Functions utiliza es muy simple.

Las funciones reciben información (mensajes) de uno o más temas de entrada y cada vez que se
recibe algún mensaje la función hace múltiples cosas sobre dichos mensajes como:

Aplicar algún tipo de lógica de procesamiento a la entrada y salida en:

Tema de salida en Pulsar

Apache BookKeeper

Escribir registros en un tema

Incrementar un contador

Apache Pulsar Funcion

Anterior 1 2 3 4 5 Siguiente
5 / 16
Pulsar y Apache Apex.

6 / 16

Ejemplo de contador de palabras

Vamos a poner un ejemplo en el cual vamos a implementar un clásico contador de


palabras usando las funciones Pulsar (Pulsar Functions).

El esquema que seguiremos será algo parecido a la siguiente imagen:

Anterior 1 2 3 4 5 6 Siguiente
6 / 16
Pulsar y Apache Apex.

7 / 16

Si escribiéramos esta función Pulsar en lenguaje Java utilizando el SDK que proporciona Pulsar
Functions, el código quedaría de la siguiente manera:

Funcion Java contar palabras pulsar

Posteriormente implementarlo en su clúster Pulsar usando la línea de comandos así:

Cluster Funcion Contar Palabras Pulsar

Anterior 2 3 4 5 6 7 Siguiente

7 / 16
Pulsar y Apache Apex.

8 / 16

Apache Apex es una plataforma nativa de Hadoop que unifica el “stream processing” y el “batch
processing”. Esta plataforma procesa big data sobre la marcha de una manera que es escalable,
con gran rendimiento, tolerable a fallos, seguro, distribuido y fácilmente operable.

Apache Apex fue desarrollada por la empresa DataTorrent bajo Apache License 2.0.

Existen 2 partes diferenciadas de Apache Apex:

Apex Core: Plataforma para la creación de aplicaciones distribuidas en


Hadoop.

Apex Malhar: Biblioteca de funciones lógicas y conectores que permite un


desarrollo de aplicaciones rápido.

Anterior 3 4 5 6 7 8 Siguiente

8 / 16
Pulsar y Apache Apex.

9 / 16

Apache Apex: Arquitectura diferente

Apache Apex fue posible gracias a que se introdujo YARN que trajo la opción de explorar cómo
podrían realizar "muchas cosas" los recursos distribuidos que manejan big data.

Apache Apex es el primer motor nativo de YARN. Permite el manejo de gran volumen de datos
por lotes.

Está preparado para generar el mayor valor posible a las empresas que trabajan con entornos
donde se manejan gran cantidad de datos, de ahí que sea la solución de referencia para llevar los
proyectos de Big Data al éxito.

La programación de la API de Apache Apex es sencilla ya que se puede utilizar Java o Scala.
Esta API hace posible que los usuarios puedan conectar cualquier función para procesar los
eventos.

Anterior 4 5 6 7 8 9 Siguiente

9 / 16
Pulsar y Apache Apex.

10 / 16

Reutilización de código

No es necesaria una gran capacitación para que los desarrolladores puedan crear aplicaciones
en Apache Apex. Además no supone un cambio a gran escala en su lógica comercial.

Apex permite módulos reutilizables y utilizar la misma lógica de negocios para el lote y la
transmisión.

La arquitectura que utiliza Apex puede controlar la lectura/escritura en buses de mensajes,


bases de datos, sistemas de archivos u otras fuentes lo que permite una integración perfecta.

Código

Anterior 5 6 7 8 9 10 Siguiente

10 / 16
Pulsar y Apache Apex.

11 / 16

Operabilidad

Apex está diseñado para mejorar la operatividad y no preocuparse por los fallos o la pérdida de
información ya que Apex asegura este respaldo.

Con Apex la tolerancia a fallos es nativa de Hadoop y no hay que usar un sistema adicional para
mantenerla.

Las aplicaciones pueden recuperarse desde el último estado persistente en HDFS.

Apex tiene construcciones de datos en movimiento que hacen posible que el flujo de datos
esté en millones de eventos/segundo usando un solo núcleo. Es una plataforma que se puede
aprovechar de manera fácil y es muy escalable ya que está basada en los estándares de seguridad
de Hadoop.

Integración y facilidad de uso

Por defecto, esta plataforma viene con soporte para servicios web y métricas. Esto hace que su
utilización e integración sea fácil con los componentes actuales de la tubería de datos (pipeline).

Los equipos de desarrollo pueden usar los sistemas y paneles existentes y monitorear los datos
en acción con cambios ínfimos en la plataforma.

Con diferentes conectores y la posibilidad de agregar más, Apex es fácilmente integrable con un
flujo de datos existente.

Anterior 6 7 8 9 10 11 Siguiente

11 / 16
Pulsar y Apache Apex.

12 / 16

Una vez instalado podremos acceder desde el navegador.

Esta página nos dará un vistazo completo del estado de todo el sistema como el uso del
procesador y de la memoria, las aplicaciones, el rendimiento, problemas… etc.

Para lanzar una aplicación nos iremos a la pestaña de desarrollador.

Desde aquí podremos lanzar paquete de aplicación y administrar las tuplas de los esquemas
para los datos de dentro de Apex.

Anterior 7 8 9 10 11 12 Siguiente

12 / 16
Pulsar y Apache Apex.

13 / 16

Apex nos provee unas cuantas aplicaciones ya creadas anteriormente que podemos ver aquí:

Vamos a usar la aplicación WordCount Demo para ver como funciona. Le daremos a lanzar
aplicación y veremos un mensaje de que la aplicación ha sido correctamente lanzada:

Anterior 7 8 9 10 11 12 13 Siguiente

13 / 16
Pulsar y Apache Apex.

14 / 16

Si clicamos al enlace del id de la aplicación nos llevara a la siguiente ventana:

Esta pagina estará llena de varias estadísticas e información.

Anterior 7 8 9 10 11 12 13 14 Siguiente
14 / 16
Pulsar y Apache Apex.

15 / 16

Si clicamos en algún operador lógico, inspeccionaremos sus registros, incluso podremos


registrar datos. Vamos a elegir el operador de consola. Clicaremos en el operador de consola y
veremos información detallada sobre el operador:

Anterior 7 8 9 10 11 12 13 14 15 Siguiente

15 / 16
Pulsar y Apache Apex.

16 / 16

Seleccionaremos una de las particiones y le daremos clic a “record sample”.

Después de unos pocos segundos veremos como las tuplas se llenan, clicaremos en una tupla
para ver su contenido. Como podemos observar del contenido, la aplicación ha realizado
una cuenta de caracteres de datos basados en ventanas:

Podemos detener esta aplicación clicando en el botón “shutdown” o “kill” de la página principal
de la aplicación.

De esta manera hemos arrancado una aplicación basada en Apache Apex.

Ejercicio

Relaciona los elementos de la columna derecha con la columna izquierda


(Introducir números en las casillas de la columna derecha)

Apache Pulsar es una 1 El “stream processing” y el


solución multi-tenant, de “batch processing”.
alto rendimiento para
Servicios de mensajería
Una de las características 2 servidor-servidor
de Apache Pulsar es:
Dispone de varios modos
Apache Apex es una para suscripción para temas.
3
plataforma nativa de
Hadoop que unifica

¡Correcto! ×

Apache pulsar es un sistema de mensajería de publicación de nivel


empresarial desarrollado originalmente en Yahoo y ahora se está
desarrollando bajo la fundación Apache.
Comprobar Reintentar Mostrar solución

Anterior 7 8 9 10 11 12 13 14 15 16

16 / 16

También podría gustarte