tutorial llap how hortonworks español hadoop hbase hive apache-pig

llap - ¿Cuándo usar Hadoop, HBase, Hive y Pig?



how to use hadoop (14)

¿Cuáles son los beneficios de usar Hadoop, HBase o Hive ?

Desde mi entendimiento, HBase evita el uso de map-reduce y tiene un almacenamiento orientado a columnas sobre HDFS. Hive es una interfaz tipo sql para Hadoop y HBase .

También me gustaría saber cómo se compara Hive con Pig .


1. Estamos usando Hadoop para almacenar datos de gran tamaño (estructura, estructura y semiestructura) en el formato de archivo de formulario como txt, csv.

2. Si queremos actualizaciones en columnas en nuestros datos, entonces estamos usando la herramienta Hbase

3. En el caso de Hive, estamos almacenando Big data que está en formato estructurado y, además de eso, proporcionamos Analysis en esa información.

4.Pig es una herramienta que utiliza el lenguaje latino Pig para analizar datos que están en cualquier formato (estructura, estructura y estructura).


Antes que nada debemos aclarar que Hadoop fue creado como una alternativa más rápida a RDBMS . Para procesar una gran cantidad de datos a un ritmo muy rápido que antes tomaba mucho tiempo en RDBMS.

Ahora uno debe saber los dos términos:

  1. Datos Estructurados : Estos son los datos que usamos en los RDBMS tradicionales y se dividen en estructuras bien definidas.

  2. Datos no estructurados : es importante comprender que aproximadamente el 80% de los datos mundiales no están estructurados o semiestructurados. Estos son los datos que están en su forma original y no se pueden procesar usando RDMS. Ejemplo: facebook, twitter data. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

Por lo tanto, se generó una gran cantidad de datos en los últimos años y la mayoría de los datos no estaban estructurados, lo que dio origen a HADOOP. Se usó principalmente para una gran cantidad de datos que requieren una cantidad de tiempo inviable mediante RDBMS. Tenía muchos inconvenientes, que no se podía usar para datos comparativamente pequeños en tiempo real, pero han logrado eliminar sus inconvenientes en la versión más nueva.

Antes de seguir adelante, me gustaría decir que se crea una nueva herramienta de Big Data cuando ven un error en las herramientas anteriores. Por lo tanto, cualquiera que sea la herramienta que verá que se crea se ha hecho para superar el problema de las herramientas anteriores.

Hadoop se puede decir simplemente como dos cosas: Mapreduce y HDFS . Mapreduce es donde se lleva a cabo el procesamiento y HDFS es la Base de datos donde se almacenan los datos. Esta estructura siguió al principal de WORM , es decir, escribió una vez leída varias veces. Entonces, una vez que tenemos datos almacenados en HDFS, no podemos hacer cambios. Esto condujo a la creación de HBASE , un producto NOSQL donde podemos hacer cambios en los datos también después de escribirlos una vez.

Pero con el tiempo vimos que Hadoop tenía muchas fallas y para eso creamos un entorno diferente sobre la estructura de Hadoop. PIG y HIVE son dos ejemplos populares.

HIVE fue creado para personas con antecedentes SQL . Las consultas escritas son similares a las SQL nombradas como HIVEQL . HIVE fue desarrollado para procesar datos completamente estructurados . No se usa para datos estructurados.

Por otro lado, el CERDO tiene su propio lenguaje de consulta, es decir, el CERDO LATINO . Se puede usar tanto para datos estructurados como no estructurados .

Pasando a la diferencia sobre cuándo usar HIVE y cuándo usar PIG, no creo que nadie más que el arquitecto de PIG pueda decir. Siga el enlace: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


Cerdo: es mejor manejar archivos y limpiar datos ejemplo: eliminar valores nulos, manejo de cadenas, valores innecesarios Colmena: para consultar sobre datos limpios


Considere que trabaja con RDBMS y tiene que seleccionar qué usar, escaneos completos de tablas o acceso a índices, pero solo uno de ellos.
Si selecciona exploración de tabla completa, use colmena. Si el acceso al índice es HBase.


Déjame intentar responder en pocas palabras.

Hadoop es un ecosistema que comprende todas las demás herramientas. Entonces, no puedes comparar Hadoop pero puedes comparar MapReduce.

Aquí están mis pocos centavos:

  1. Hive: si su necesidad es muy SQLish, lo que significa que su enunciado de problema puede ser atendido por SQL, entonces lo más fácil sería usar Hive. El otro caso, cuando usaría colmena es cuando desea que un servidor tenga cierta estructura de datos.
  2. Cerdo: si te sientes cómodo con Pig Latin y necesitas más canalizaciones de datos. Además, tus datos carecen de estructura. En esos casos, podrías usar Pig. Honestamente no hay mucha diferencia entre Hive & Pig con respecto a los casos de uso.
  3. MapReduce: si su problema no puede resolverse utilizando SQL directamente, primero debe intentar crear UDF para Hive & Pig y luego, si el UDF no está resolviendo el problema, entonces tiene sentido hacerlo a través de MapReduce.

Implementé recientemente una plataforma Hive Data en mi empresa y puedo hablar en primera persona ya que era un equipo de un solo hombre.

Objetivo

  1. Tener los archivos diarios de registro web recopilados de más de 350 servidores consultables diariamente a través de algún lenguaje SQL.
  2. Para reemplazar los datos de agregación diaria generados a través de MySQL con Hive
  3. Crear informes personalizados a través de consultas en Colmena

Opciones de arquitectura

Hice una evaluación comparativa de las siguientes opciones:

  1. Colmena + HDFS
  2. Hive + HBase : las consultas eran demasiado lentas, así que dejé esta opción

Diseño

  1. Archivos de registro diarios fueron transportados a HDFS
  2. Los trabajos de MR analizaron estos archivos de registro y los archivos de salida en HDFS
  3. Crea tablas Hive con particiones y ubicaciones que apuntan a ubicaciones HDFS
  4. Cree scripts de consulta Hive ( llámelo HQL si le gusta como diferencia de SQL ) que a su vez ejecutó trabajos de MR en segundo plano y generó datos de agregación
  5. Coloque todos estos pasos en un flujo de trabajo de Oozie , programado con Daily Oozie Coordinator

Resumen

HBase es como un mapa. Si conoce la clave, puede obtener el valor al instante. Pero si quiere saber cuántas claves enteras en Hbase están entre 1000000 y 2000000, eso no es adecuado solo para Hbase .

Si tiene datos agregados, acumulados y analizados en varias filas, considere Hive .

Espero que esto ayude.

En realidad, la colmena se mece realmente bien ... Lo sé, la he vivido durante 12 meses ... También HBase ...


Limpiar datos en Pig es muy fácil, un enfoque adecuado sería limpiar los datos a través de pig y luego procesar los datos a través de la colmena y luego subirlos a hdfs.


MapReduce es solo un marco informático . HBase no tiene nada que ver con eso. Dicho esto, puede colocar o recuperar datos de forma eficiente a HBase escribiendo trabajos de MapReduce. Alternativamente, puede escribir programas secuenciales utilizando otras API de HBase, como Java, para colocar o recuperar los datos. Pero utilizamos Hadoop, HBase, etc. para manejar enormes cantidades de datos, por lo que no tiene mucho sentido. Usar programas secuenciales normales sería altamente ineficiente cuando sus datos son demasiado grandes.

Volviendo a la primera parte de su pregunta, Hadoop es básicamente 2 cosas: un sistema de archivos distribuido (HDFS) + un marco de cálculo o procesamiento (MapReduce) . Como todos los otros FS, HDFS también nos proporciona almacenamiento, pero de una manera tolerante a fallas con alto rendimiento y menor riesgo de pérdida de datos (debido a la replicación). Pero, al ser un FS, HDFS carece de acceso aleatorio de lectura y escritura . Aquí es donde HBase entra en la imagen. Es una gran tienda de datos distribuida y escalable , modelada según la BigTable de Google. Almacena datos como pares clave / valor.

Viniendo a Hive. Nos proporciona instalaciones de almacenamiento de datos sobre un clúster Hadoop existente. Además de eso, proporciona una interfaz tipo SQL que facilita su trabajo, en caso de que provenga de un fondo SQL. Puede crear tablas en Hive y almacenar datos allí. Además de eso, puede incluso asignar sus tablas HBase existentes a Hive y operar en ellas.

Mientras que Pig es básicamente un lenguaje de flujo de datos que nos permite procesar enormes cantidades de datos de manera muy fácil y rápida. Pig básicamente tiene 2 partes: el intérprete Pig y el lenguaje PigLatin . Usted escribe Pig script en PigLatin y usando el intérprete Pig lo procesa. Pig hace que nuestra vida sea mucho más fácil, de lo contrario escribir MapReduce no siempre es fácil. De hecho, en algunos casos, realmente puede convertirse en un dolor.

Había escrito un artículo sobre una comparación corta de diferentes herramientas del ecosistema de Hadoop hace algún tiempo. No es una comparación en profundidad, sino una breve introducción a cada una de estas herramientas que pueden ayudarlo a comenzar. (Solo para agregar a mi respuesta. No se prevé auto promoción)

Las consultas de Hive y Pig se convierten en trabajos de MapReduce bajo el capó.

HTH


Para una comparación entre Hadoop Vs Cassandra / HBase, lea esta post .

Básicamente, HBase permite lecturas y escrituras realmente rápidas con escalabilidad. ¿Qué tan rápido y escalable? Facebook usa para administrar sus estados de usuario, fotos, mensajes de chat, etc. HBase es tan rápido que a veces Facebook ha desarrollado stacks para usar HBase como el almacén de datos de Hive.

Donde As Hive se parece más a una solución de almacenamiento de datos. Puede utilizar una sintaxis similar a SQL para consultar los contenidos de Hive, lo que da como resultado un trabajo de Map Reduce. No es ideal para sistemas transaccionales rápidos.


Soy un principiante en Hadoop, actualmente estoy trabajando en un proyecto con Hadoop y Pig Latin. con un poco de experiencia, puedo comentar Pig vs Hive.

Aquí está la comparación:

  • Pig Latin es de procedimiento, donde Hive es declarativo.
  • Pig Latin permite a los desarrolladores de tuberías decidir dónde ubicar los datos del punto de control en la tubería.
  • Pig Latin le permite al desarrollador seleccionar implementaciones específicas del operador directamente en lugar de confiar en el optimizador.
  • Pig Latin admite divisiones en la tubería.
  • Pig Latin permite a los desarrolladores insertar su propio código casi en cualquier parte de la cadena de datos.

Hadoop es un framework que permite el procesamiento distribuido de grandes conjuntos de datos en clusters de computadoras utilizando modelos de programación simples.

Hay cuatro módulos principales en Hadoop.

  1. Hadoop Common : las utilidades comunes que son compatibles con los otros módulos de Hadoop.

  2. Sistema de archivos distribuidos de Hadoop ( HDFS ™ ): sistema de archivos distribuido que proporciona acceso de alto rendimiento a los datos de las aplicaciones.

  3. HADOOP YARN : un marco para la programación de trabajos y la administración de recursos de clúster.

  4. Hadoop MapReduce : un sistema basado en YARN para el procesamiento paralelo de grandes conjuntos de datos.

Antes de seguir adelante, observemos que tenemos tres tipos de datos diferentes.

  • Estructurado : los datos estructurados tienen un esquema fuerte y el esquema se comprobará durante la operación de escritura y lectura. por ejemplo, datos en sistemas RDBMS como Oracle, MySQL Server, etc.

  • Desestructurado : los datos no tienen ninguna estructura y pueden ser de cualquier forma: registros del servidor web, correo electrónico, imágenes, etc.

  • Semi-estructurado : los datos no están estrictamente estructurados, pero tienen cierta estructura. por ejemplo, archivos XML.

Según el tipo de datos que se procesarán, debemos elegir la tecnología adecuada.

Algunos proyectos más, que son parte de Hadoop:

  • HBase ™ : una base de datos distribuida y escalable que admite el almacenamiento de datos estructurados para tablas grandes.

  • Hive ™: una infraestructura de depósito de datos que proporciona un resumen de datos y consultas ad-hoc.

  • Pig ™ : un lenguaje de flujo de datos de alto nivel y un marco de ejecución para el cómputo paralelo.

La comparación de Hive Vs PIG se puede encontrar en este article y en mi otra publicación en esta question SE.

HBASE no reemplazará Map Reduce. HBase es una base de datos distribuida escalable y Map Reduce es un modelo de programación para el procesamiento distribuido de datos. Map Reduce puede actuar sobre los datos en HBASE en el procesamiento.

Puede usar HIVE / HBASE para datos estructurados / semiestructurados y procesarlo con Hadoop Map Reduce

Puede usar SQOOP para importar datos estructurados de la base de datos RDBMS tradicional Oracle, SQL Server, etc. y procesarlo con Hadoop Map Reduce

Puede usar FLUME para procesar datos sin estructurar y procesar con Hadoop Map Reduce

Eche un vistazo a: Casos de uso de Hadoop .

La colmena debe usarse para consultas analíticas de datos recopilados durante un período de tiempo. por ejemplo, calcular tendencias, resumir los registros del sitio web, pero no se puede utilizar para consultas en tiempo real.

HBase se ajusta para la consulta en tiempo real de Big Data. Facebook lo usa para mensajería y análisis en tiempo real.

El PIG se puede usar para construir flujos de datos, ejecutar trabajos programados, procesar grandes volúmenes de datos, agregarlos / resumirlos y almacenarlos en sistemas de bases de datos relacionados. Bueno para el análisis ad-hoc.

Hive se puede usar para el análisis de datos ad hoc, pero no puede admitir todos los formatos de datos no estructurados a diferencia del PIG.


4 RAZONES PARA UTILIZAR HADOOP PARA LA CIENCIA DE LOS DATOS: ---

En los últimos 10 años, grandes empresas web como Google, Yahoo !, Amazon y Facebook han aplicado con éxito algoritmos de aprendizaje automático a gran escala en conjuntos de datos grandes, creando productos de datos innovadores, como sistemas de publicidad en línea y motores de recomendación.

Apache Hadoop se está convirtiendo rápidamente en una tienda central para big data en la empresa y, por lo tanto, es una plataforma natural con la que TI empresarial puede aplicar la ciencia de datos a una variedad de problemas comerciales, como recomendaciones de productos, detección de fraudes y análisis de sentimientos.

Basándose en los patrones de Refinar, Explorar, Enriquecer que describimos en nuestro documento técnico Hadoop Patterns of Use, repasemos algunas de las razones principales para usar Hadoop para la ciencia de datos que también se capturan en la siguiente presentación:

[ID de Slideshare = 18622467 & doc = whyhadoopfordatascience-130411110136-phpapp02]

RAZÓN 1: EXPLORACIÓN DE DATOS CON DATOS COMPLETOS Los científicos de datos adoran su entorno de trabajo. Ya sea que utilicen R, SAS, Matlab o Python, siempre necesitan una computadora portátil con mucha memoria para analizar datos y crear modelos. En el mundo de los grandes datos, la memoria de la computadora portátil nunca es suficiente y, a veces, ni siquiera está cerca.

Un enfoque común es usar una muestra del conjunto de datos grande, una muestra grande que pueda caber en la memoria. Con Hadoop, ahora puede ejecutar muchas tareas de análisis de datos exploratorios en conjuntos de datos completos, sin muestreo. Simplemente escriba un trabajo de reducción de mapas, secuencias de comandos PIG o HIVE, ejecútelo directamente en Hadoop en todo el conjunto de datos y obtenga los resultados directamente en su computadora portátil.

RAZÓN 2: MINERÍA DE DATOS MÁS GRANDES En muchos casos, los algoritmos de aprendizaje automático logran mejores resultados cuando tienen más datos de los que aprender, en particular para técnicas como la agrupación, la detección de valores atípicos y los recomendadores de productos.

Históricamente, los grandes conjuntos de datos no estaban disponibles o eran demasiado costosos de adquirir y almacenar, por lo que los practicantes de aprendizaje automático tenían que encontrar formas innovadoras de mejorar los modelos con conjuntos de datos bastante limitados. Con Hadoop como una plataforma que proporciona capacidad de almacenamiento y procesamiento linealmente escalable, ahora puede almacenar TODOS los datos en formato RAW y usar el conjunto de datos completo para crear modelos mejores y más precisos.

RAZÓN 3: PRE-PROCESO A GRAN ESCALA DE DATOS SIN PROCESAR Como muchos científicos de datos le dirán, el 80% del trabajo de ciencia de datos es típicamente con adquisición de datos, transformación, limpieza y extracción de características. Este paso de "preprocesamiento" transforma los datos brutos en un formato consumible por el algoritmo de aprendizaje automático, generalmente en forma de una matriz de características.

Hadoop es una plataforma ideal para implementar este tipo de preprocesamiento de manera eficiente y distribuida a través de grandes conjuntos de datos, utilizando map-reduce o herramientas como PIG, HIVE y lenguajes de scripting como Python. Por ejemplo, si su aplicación implica procesamiento de texto, a menudo se necesita representar datos en formato de vector de palabra usando TFIDF, lo que implica contar frecuencias de palabras en un gran corpus de documentos, ideal para un trabajo por lotes de reducción de mapa.

De manera similar, si su aplicación requiere unir tablas grandes con miles de millones de filas para crear vectores de características para cada objeto de datos, HIVE o PIG son muy útiles y eficientes para esta tarea.

RAZÓN 4: AGILITY DE DATOS A menudo se menciona que Hadoop es "esquema en lectura", a diferencia de la mayoría de los sistemas RDBMS tradicionales que requieren una definición de esquema estricta antes de que cualquier información pueda ser incorporada en ellos.

"Esquema en lectura" crea "agilidad de datos": cuando se necesita un nuevo campo de datos, no es necesario pasar por un largo proyecto de rediseño de esquema y migración de base de datos en producción, que puede durar meses. El impacto positivo se extiende a través de una organización y muy rápidamente todos quieren usar Hadoop para su proyecto, lograr el mismo nivel de agilidad y obtener una ventaja competitiva para su negocio y línea de productos.

COLMENA:---

Hive es una herramienta de infraestructura de almacenamiento de datos para procesar datos estructurados en Hadoop. Reside en Hadoop para resumir Big Data y facilita la consulta y el análisis.

SI USTED NO CONOCE A PYTHON O JAVA PARA EL PROCEDIMIENTO DEL CÓDIGO MAPREDUCE ... ENTONCES NO SE PREOCUPA ... PERO SI SABE SQL, DEBERÁ USARSE HIVE..THAT TAMBIÉN SE LLAMA HIVEQL ... PARA EL PROCESO DE CONSULTA DE GRANDES DATASETS ...

CERDO:--

¿Por qué necesitamos Apache Pig? Los programadores que no son tan buenos en Java normalmente solían tener dificultades para trabajar con Hadoop, especialmente al realizar cualquier tarea de MapReduce. Apache Pig es una gran ayuda para todos esos programadores.

Usando Pig Latin, los programadores pueden realizar tareas de MapReduce fácilmente sin tener que escribir códigos complejos en Java.

Apache Pig utiliza un enfoque de consultas múltiples, lo que reduce la longitud de los códigos. Por ejemplo, una operación que requeriría que escriba 200 líneas de código (LoC) en Java se puede hacer fácilmente escribiendo tan solo 10 LoC en Apache Pig. En última instancia, Apache Pig reduce el tiempo de desarrollo en casi 16 veces.

Pig Latin es un lenguaje similar a SQL y es fácil aprender Apache Pig cuando está familiarizado con SQL.

Apache Pig proporciona muchos operadores integrados para admitir operaciones de datos como uniones, filtros, pedidos, etc. Además, también proporciona tipos de datos anidados como tuplas, bolsas y mapas que faltan en MapReduce.

HBASE: -

Apache HBase es una de las bases de datos no relacionales más populares construida sobre Hadoop y HDFS (sistema de archivos distribuidos Hadoop). También se conoce como la base de datos de Hadoop. Como proyecto de Apache, HBase es una base de datos de fuente abierta, versionada y distribuida noSQL escrita en el lenguaje Java. Está basado en los conceptos de Bigtable de Google. Apache HBase es adecuado para casos de uso en los que necesita acceso de lectura / escritura en tiempo real y aleatorio a enormes volúmenes de datos (Big Data). A medida que HBase se ejecuta sobre HDFS, el rendimiento también depende del soporte de hardware. Necesitamos proporcionar una cantidad suficiente de nodos (mínimo 5) para obtener un mejor rendimiento.

¿Cuáles son las características de Hbase NoSQL DB? Apache HBase es una base de datos orientada a columna que admite el esquema dinámico de la base de datos. Se ejecuta principalmente en la parte superior de HDFS y admite trabajos de MapReduce. HBase también es compatible con otros lenguajes de alto nivel para el procesamiento de datos. Echemos un vistazo a las diferentes características de HBase :.

Escalabilidad: HBase admite escalabilidad en forma lineal y modular

Sharding: HBase admite la fusión automática de tablas. También es configurable.

Almacenamiento distribuido : HBase admite almacenamiento distribuido como HDFS

Consistencia : admite operaciones consistentes de lectura y escritura

Soporte de failover : HBase admite failover automático

Soporte de API: HBase admite API de Java para que los clientes puedan acceder fácilmente. Soporte de MapReduce: HBase admite MapReduce para el procesamiento en paralelo de gran volumen de datos.

Soporte de respaldo: HBase admite la copia de seguridad de trabajos Hadoop MapReduce en tablas HBase. Procesamiento en tiempo real: admite caché de bloque y filtros Bloom. Entonces, el procesamiento de consultas en tiempo real es fácil


Comprender en profundidad

Hadoop

Hadoop es un proyecto de código abierto de la fundación Apache . Es un marco escrito en Java , desarrollado originalmente por Doug Cutting en 2005. Fue creado para admitir la distribución de Nutch , el motor de búsqueda de texto. Hadoop utiliza las tecnologías Google Map Reduce System y Google File System como base.

Características de Hadoop

  1. Está optimizado para manejar cantidades masivas de datos estructurados, semiestructurados y no estructurados utilizando hardware básico.
  2. No ha compartido nada de arquitectura.
  3. Reproduce sus datos en varias computadoras, de modo que si se cae, los datos aún se pueden procesar desde otra máquina que almacena su réplica.
  4. Hadoop es para un alto rendimiento en lugar de baja latencia. Es una operación por lotes que maneja cantidades masivas de datos; por lo tanto, el tiempo de respuesta no es inmediato.
  5. Complementa el procesamiento de transacciones en línea y el procesamiento analítico en línea. Sin embargo, no es un reemplazo para un RDBMS .
  6. No es bueno cuando el trabajo no se puede paralelizar o cuando hay dependencias dentro de los datos.
  7. No es bueno para procesar archivos pequeños. Funciona mejor con enormes archivos de datos y conjuntos de datos.

Versiones de Hadoop

Hay dos versiones de Hadoop disponibles:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

Tiene dos partes principales:

1. Marco de almacenamiento de datos

Es un sistema de archivos de uso general llamado Hadoop Distributed File System ( HDFS ).

HDFS tiene esquemas

Simplemente almacena archivos de datos y estos archivos de datos pueden estar en casi cualquier formato.

La idea es almacenar archivos tan cerca de su forma original como sea posible.

Esto a su vez proporciona a las unidades de negocio y a la organización la flexibilidad y agilidad que tanto se necesitan sin preocuparse demasiado por lo que puede implementar.

2. Marco de procesamiento de datos

Este es un modelo de programación funcional simple inicialmente popularizado por Google como MapReduce .

Básicamente utiliza dos funciones: MAP y REDUCE para procesar datos.

Los "Mappers" toman un conjunto de pares clave-valor y generan datos intermedios (que es otra lista de pares clave-valor).

Los "Reductores" actúan sobre esta entrada para producir los datos de salida.

Las dos funciones aparentemente trabajan de forma aislada entre sí, lo que permite que el procesamiento esté altamente distribuido en forma altamente paralela, tolerante a fallas y escalable.

Limitaciones de Hadoop 1.0

  1. La primera limitación fue el requisito de la experiencia en programación de MapReduce .

  2. Soportó solo el procesamiento por lotes, que aunque es adecuado para tareas como el análisis de registros, proyectos de minería de datos a gran escala, pero bastante inadecuado para otros tipos de proyectos.

  3. Una de las principales limitaciones era que Hadoop 1.0 estaba estrechamente acoplado computacionalmente con MapReduce , lo que significaba que los proveedores de gestión de datos establecidos se quedaban con dos opiniones:

    1. Reescribe su funcionalidad en MapReduce para que pueda ejecutarse en Hadoop o

    2. Extraiga datos de HDFS o HDFS fuera de Hadoop .

Ninguna de las opciones era viable, ya que generaba ineficiencias en el proceso causadas por la entrada y salida de datos del clúster de Hadoop .

Hadoop 2.0

En Hadoop 2.0 , HDFS continúa siendo el marco de almacenamiento de datos.

Sin embargo, se ha agregado un nuevo y separado marco de gestión de recursos llamado Y et A nother R egor N egotiater ( YARN ).

Cualquier aplicación capaz de dividirse en tareas paralelas es compatible con YARN.

YARN coordina la asignación de subtareas de la aplicación enviada, mejorando así la flexibilidad, la escalabilidad y la eficiencia de las aplicaciones.

Funciona teniendo un Application Master en lugar de Job Tracker , ejecutando aplicaciones en recursos gobernados por el nuevo Node Manager .

ApplicationMaster puede ejecutar cualquier aplicación y no solo MapReduce .

Esto significa que no solo admite el procesamiento por lotes sino también el procesamiento en tiempo real. MapReduce ya no es la única opción de procesamiento de datos.

Ventajas de Hadoop

Almacena datos en su origen desde. No se impone ninguna estructura al codificar datos o almacenar datos. HDFS es el esquema menos. Solo es más tarde cuando los datos deben procesarse que la estructura se impone a los datos brutos.

Es escalable. Hadoop puede almacenar y distribuir conjuntos de datos muy grandes en cientos de servidores baratos que operan en paralelo.

Es resistente al fracaso. Hadoop es tolerancia a fallas. Practica la replicación de datos diligentemente, lo que significa que cada vez que se envían datos a un nodo, los mismos datos también se replican en otros nodos del clúster, garantizando así que en caso de fallo del nodo, siempre habrá otra copia de datos disponible para su uso.

Es flexible Una de las principales ventajas de Hadoop es que puede funcionar con cualquier tipo de datos: estructurados, no estructurados o semiestructurados. Además, el procesamiento es extremadamente rápido en Hadoop debido al paradigma "mover código a datos".

Ecosistema Hadoop

Los siguientes son los componentes del ecosistema de Hadoop :

HDFS : Sistema de archivos distribuidos Hadoop . Simplemente almacena los archivos de datos tan cerca de la forma original como sea posible.

HBase : es la base de datos de Hadoop y se compara bien con un RDBMS . Es compatible con el almacenamiento de datos estructurados para tablas grandes.

Hive : permite el análisis de grandes conjuntos de datos usando un lenguaje muy similar al estándar ANSI SQL , lo que implica que cualquier persona que tenga conocimientos de SQL debería poder acceder a los datos en un clúster de Hadoop .

Pig : es un lenguaje de flujo de datos fácil de entender. Ayuda con el análisis de grandes conjuntos de datos, lo cual es bastante importante con Hadoop . Pig scripts Pig se convierten automáticamente en trabajos MapReduce por el intérprete Pig .

ZooKeeper : es un servicio de coordinación para aplicaciones distribuidas.

Oozie : Es un sistema schedular flujo de trabajo para administrar trabajos de Apache Hadoop .

Mahout : es una biblioteca escalable de aprendizaje automático y minería de datos.

Chukwa : Es un sistema de recopilación de datos para administrar grandes sistemas distribuidos.

Sqoop : se usa para transferir datos masivos entre Hadoop y almacenes de datos estructurados, como bases de datos relacionales.

Ambari : es una herramienta basada en la web para aprovisionar, administrar y monitorear clusters de Hadoop .

Colmena

Hive es una herramienta de infraestructura de almacenamiento de datos para procesar datos estructurados en Hadoop . Reside en Hadoop para resumir Big Data y facilita la consulta y el análisis.

La colmena no es

  1. Una base de datos relacional

  2. Un diseño para el procesamiento de transacciones en línea ( OLTP ).

  3. Un lenguaje para consultas en tiempo real y actualizaciones a nivel de fila.

Características de Hive

  1. Almacena el esquema en la base de datos y los datos procesados ​​en HDFS .

  2. Está diseñado para OLAP .

  3. Proporciona SQL tipo SQL para consultas llamado HiveQL o HQL .

  4. Es más familiar, rápido, escalable y extensible.

Arquitectura de colmena

Los siguientes componentes están contenidos en Hive Architecture:

  1. Interfaz de usuario : Hive es una infraestructura de data warehouse que puede crear interacción entre el usuario y HDFS . Las interfaces de usuario que Hive admite son Hive Web UI, Hive Command Line y Hive HD Insight (en Windows Server).

  2. MetaStore : Hive elige los servers database respectivos para almacenar el esquema o Metadata de tablas, bases de datos, columnas en una tabla, sus tipos de datos y mapeo HDFS .

  3. HiveQL Process Engine : HiveQL es similar a SQL para consultar información de esquema en el Metastore . Es uno de los reemplazos del enfoque tradicional para el programa MapReduce . En lugar de escribir MapReduce en Java , podemos escribir una consulta para MapReduce y procesarla.

  4. Motor Exceution : la parte de conjunción del motor de procesos HiveQL y MapReduce es el motor de ejecución Hive . El motor de ejecución procesa la consulta y genera resultados de la misma manera que los MapReduce results . Utiliza el sabor de MapReduce .

  5. HDFS o HBase : Hadoop Distributed File System o HBase son las técnicas de almacenamiento de datos para almacenar datos en el sistema de archivos.


Trabajé en el procesamiento de arquitectura Lambda en tiempo real y carga por lotes. El procesamiento en tiempo real es necesario cuando se deben tomar decisiones rápidas en caso de alarma de incendio enviada por sensor o detección de fraude en el caso de transacciones bancarias. El procesamiento por lotes es necesario para resumir los datos que se pueden alimentar a los sistemas de BI.

utilizamos las tecnologías del ecosistema de Hadoop para las aplicaciones anteriores.

Procesamiento en tiempo real

Apache Storm: procesamiento de datos de flujo, aplicación de reglas

HBase: almacén de datos para servir panel de control en tiempo real

Procesamiento por lotes Hadoop: Crunching huge piece of data. Visión general de 360 ​​grados o adición de contexto a eventos. Interfaces o marcos como Pig, MR, Spark, Hive, Shark ayudan en la informática. Esta capa necesita un programador para el cual Oozie es una buena opción.

Capa de manejo de eventos

Apache Kafka fue la primera capa en consumir eventos de alta velocidad del sensor. Kafka ofrece flujo de datos de análisis en tiempo real y por lotes a través de conectores de Linkedin.