Altos volúmenes de datos y alta velocidad, no son garantía de un Big Data exitoso. Su variedad o diversidad enriquecido por las distintas fuentes organizadas y armonizadas, en realidad le otorgarán su potencial real que es la generación y/o manejo del valor empresarial.
Gartner define el big data como grandes volúmenes, alta
velocidad y gran variedad de activos de información. Añadiendo la no estructura
original y alto crecimiento, estaría un poco más completa.
En los últimos dos años una mayor cantidad de empresas
comenzó la recolección y almacenamiento de todo tipo de formatos y tamaños de
datos con y sin estructura, además de extraer cierto valor de estos. Con una diversidad de arquitecturas, tecnologías, modelos.
Esto va más allá de lo que conocemos hoy, esto es, si bien
el big data subyace en clusters y procesamiento paralelo; su verdadero
potencial será puesto a prueba con las arquitecturas cuánticas. Aunado a la
integración del IoT(Internet de las cosas), las nubes y los algoritmos de
inteligencia artificial que evolucionan. Centrando en las herramientas
analíticas el reto de exponenciar su valor. Hoy en día su balanceo con Streaming y Lagos de Datos lleva a las arquitecturas más balanceadas para su administración y explotación.
En esta ocasión nos centraremos en Hadoop y el entorno que
lo envuelve, considerando que es uno de los medios de gestión de Big data más populares
y open source. Sin dejar de lado el paso que las herramientas abren para
brindar mejores resultados y no depender solo de Hadoop. No olvidemos como el
boom de los XML para integrar fue relevado por la no estructura de JSON.
En poco tiempo se estima un crecimiento importante de la
arquitectura y sistemas para almacenar, organizar y gestionar grandes volúmenes
de datos, madurarán los marcos de referencia y seguridad para facilitar la
explotación y análisis. Más aún importante es la capacidad de reconocimiento de
patrones y aprendizaje de estos datos.
La convivencia con distintas fuentes y medios de información
se armonizan y los esquemas estructurados solo son una parte del potencial real
que incluso va mucho más allá de tener dashboards, dando paso a los acelerados
y lenguajes que simplifican su uso y explotación más aún si están proyectados
para interactuar en tiempo real con dispositivos y aplicativos que explotan el
estudio de los patrones de comportamiento, para predecir, aprender, etc.
Hadoop
Apache Hadoop es software de código abierto que sirve para
almacenar y analizar cantidades masivas de datos, tanto estructurados como no
estructurados: terabytes o más de correo electrónico, lecturas de sensores,
registros de servidor, fuentes de Twitter, señales de GPS, etc; cualquier tipo
de datos que pueda imaginar. Con Hadoop puede procesar grandes conjuntos de
datos desordenados y obtener conocimiento y respuestas a partir de ellos, de
ahí la expectación creada.
Apache Hadoop es un framework de software que soporta
aplicaciones distribuidas bajo una licencia libre.1 Permite a las aplicaciones
trabajar con miles de nodos y petabytes de datos. Hadoop se inspiró en los
documentos Google para MapReduce y Google File System (GFS).
Una funcionalidad clave es que para la programación efectiva
de trabajo, cada sistema de archivos debe conocer y proporcionar su ubicación:
el nombre del rack (más precisamente, del switch) donde está el nodo
trabajador. Las aplicaciones Hadoop pueden usar esta información para ejecutar
trabajo en el nodo donde están los datos y, en su defecto, en el mismo
rack/switch, reduciendo así el tráfico de red troncal (backbone traffic).
El Hadoop Distributed File System (HDFS) es un sistema de
archivos distribuido, escalable y portátil escrito en Java para el framework
Hadoop. Cada nodo en una instancia Hadoop típicamente tiene un único nodo de
datos; un clúster de datos forma el clúster HDFS. La situación es típica porque
cada nodo no requiere un nodo de datos para estar presente. Cada nodo sirve
bloques de datos sobre la red usando un protocolo de bloqueo específico para
HDFS. El sistema de archivos usa la capa TCP/IP para la comunicación; los
clientes usan RPC para comunicarse entre ellos.
La lista de sistemas de archivos soportados incluye:
- HDFS: El sistema propio de Hadoop. Está diseñado para la escala de decenas petabytes de almacenamiento y funciona sobre los sistemas de archivos de base.
- Amazon S3. Éste se dirige a clusters almacenados en la infraestructura del servidor bajo demanda Amazon Elastic Compute Cloud. No hay conciencia de racks en este sistema de archivos, porque todo él es remoto.
- CloudStore (previamente llamado Kosmos Distributed File System), el cual es consciente de los racks.
- FTP: éste almacena todos sus datos en un servidor FTP accessible remotamente.
- HTTP y HTTPS de solo lectura.
Hadoop puede trabajar directamente con cualquier sistema de
archivos distribuido, el cual puede ser montado por el sistema operativo
subyacente simplemente usando la URL file://, sin embargo esto tiene un precio:
la pérdida de la localidad. Para reducir el tráfico de red, Hadoop necesita
saber qué servidores están más próximos a los datos; esta información la pueden
proporcionar los puentes específicos del sistema de archivos específico de
Hadoop.
Spark
Apache Spark ™ es un motor rápido y general para el procesamiento
de datos a gran escala, cuenta con un avanzado motor de ejecución de DAG que
soporta el flujo de datos acíclicos y la computación en memoria.
Spark ofrece más de 80 operadores de alto nivel que
facilitan la creación de aplicaciones paralelas. Y se puede utilizar de forma
interactiva de la Scala, Python y R shells. Potencia una pila de bibliotecas
incluyendo SQL y DataFrames , MLlib para aprendizaje automático, GraphX y Spark
Streaming . Puede combinar estas bibliotecas de forma transparente en la misma
aplicación.
Puede ejecutar Spark
utilizando su modo de agrupación independiente , en EC2 , en Hadoop YARN o en
Apache Mesos . Acceda a datos en HDFS , Cassandra , HBase , Hive , Tachyon y
cualquier fuente de datos de Hadoop.
Pig
Apache Pig es una plataforma para el análisis de grandes
conjuntos de datos que consiste en un lenguaje de alto nivel para expresar los
programas de análisis de datos, junto con la infraestructura para evaluar estos
programas. La propiedad más destacada de los programas de Pig es que su
estructura es susceptible de una gran paralelización, lo que a su vez les
permite manejar conjuntos de datos muy grandes.
En la actualidad, la capa de infraestructura de Pig consiste
en un compilador que produce secuencias de programas Map-Reduce, para los
cuales ya existen implementaciones en paralelo a gran escala (por ejemplo, el
subproyecto Hadoop). La capa lingüística de Pig se compone actualmente de un
lenguaje textual llamado Pig Latin, que tiene las siguientes propiedades clave:
Facilidad de programación. Es trivial lograr la ejecución
paralela de tareas de análisis de datos simples, "embarazoso
paralelo". Las tareas complejas compuestas de múltiples transformaciones
de datos interrelacionadas se codifican explícitamente como secuencias de flujo
de datos, haciéndolas fáciles de escribir, comprender y mantener.
Scala
Scala es un híbrido funcional y orientado a objetos de
lenguaje de programación que se ejecuta en JVM (Java Virtual Machine). El
nombre es un acrónimo de Lenguaje escalable. Está diseñado para la
simultaneidad, la expresividad y la escalabilidad.
Se utiliza en algunos de los componentes del ecosistema de
Hadoop como Apache Spark, Apache Kafka, etc. Así que sería realmente útil para
alguien desarrollar aplicaciones usando Scala que usa Hadoop y los proyectos de
ecosistemas.
Una arquitectura big data de Shah y Sqwant:
En esta primera aproximación al Big data, llegamos hasta aquí.
Sin duda alguna en un siguiente artículo modelaremos algo de Lambda, Kappa y las arquitecturas comúnes del mercado para su implementación On Premise o Cloud.
En esta primera aproximación al Big data, llegamos hasta aquí.
Sin duda alguna en un siguiente artículo modelaremos algo de Lambda, Kappa y las arquitecturas comúnes del mercado para su implementación On Premise o Cloud.
Por Jorge Mercado
JMCoach
@JormerMx
JMCoach
@JormerMx