Hadoop y Big Data: cuándo usar cada uno de ellos. Destacado

Última respuesta nov. 13, 2019 14:19:58 115 1 1 0

hadoop vs Big data

 

Hoy, Hadoop y Big Data casi se han convertido en sinónimos entre sí. Pero Hadoop no es solo Hadoop ahora. Con el tiempo, se ha convertido en una gran agrupación de diversas herramientas, cada una de ellas destinada a un propósito diferente. Pero ligados, te dan un combo lleno de energía.

 

 

Dicho esto, hay que tener cuidado al elegir estas herramientas para su caso de uso específico, ya que una talla única no sirve para todos. Lo que está funcionando para alguien podría no ser tan productivo para usted. Entonces, aquí te mostraré qué herramienta se debe elegir en qué escenario. No es un gran estudio comparativo, sino una breve introducción a algunas herramientas muy útiles. Y, esto se basa totalmente en mi experiencia, por lo que siempre hay un alcance de sugerencias. No dude en comentar o sugerir si tiene alguno. Me encantaría saber de ti. Empecemos: 

 

 

1- Hadoop: Hadoop es básicamente 2 cosas, un sistema de archivos distribuido (HDFS) que constituye la capa de almacenamiento de Hadoop y un marco de cómputo distribuido (MapReduce) que constituye la capa de procesamiento. Debería optar por Hadoop si sus datos son muy grandes y tiene un procesamiento por lotes fuera de línea que necesita. Hadoop no es adecuado para cosas en tiempo real. Configura un clúster de Hadoop en un grupo de máquinas básicas conectadas entre sí a través de una red (denominada clúster). Luego almacena grandes cantidades de datos en el HDFS y procesa estos datos escribiendo programas (o trabajos) de MapReduce. Al distribuirse, HDFS se ha extendido por todas las máquinas en un clúster y MapReduce procesa estos datos dispersos localmente yendo a cada máquina, para que no tenga que reubicar esta cantidad gigantesca de datos.

 

 

2- Hbase: Hbase es un almacén distribuido, escalable y de grandes datos, modelado a partir de la BigTable de Google. Almacena datos como pares clave / valor. Básicamente es una base de datos, una base de datos NoSQL y, como cualquier otra base de datos, la mayor ventaja es que le brinda capacidades de lectura / escritura aleatorias. Como mencioné anteriormente, Hadoop no es muy bueno para sus necesidades en tiempo real, por lo que puede usar Hbase para ese propósito. Si tiene algunos datos a los que desea acceder en tiempo real, puede almacenarlos en Hbase. Hbase tiene su propio conjunto de API muy buenas que podrían usarse para empujar / extraer los datos. No solo esto, Hbase se puede integrar perfectamente con MapReduce para que pueda realizar una operación masiva, como indexación, análisis, etc.

Consejo: puede usar Hadoop como repositorio de sus datos estáticos y Hbase como el almacén de datos que contendrá datos que probablemente cambiarán con el tiempo después de algún procesamiento.

 

 

3- Hive: Originalmente desarrollado por Facebook, Hive es básicamente un almacén de datos. Se encuentra en la parte superior de su clúster Hadoop y le proporciona una interfaz similar a SQL para los datos almacenados en su clúster Hadoop. Luego puede escribir consultas SQLish utilizando el lenguaje de consulta de Hive, llamado HiveQL, y realizar operaciones como almacenar, seleccionar, unir y mucho más. Hace que el procesamiento sea mucho más fácil ya que no tiene que hacer una codificación larga y tediosa. Escriba consultas simples de Hive y obtenga los resultados. ¿No es genial? A la gente de RDBMS definitivamente le encantará. Simplemente asigne archivos HDFS a las tablas de Hive y comience a consultar los datos. No solo esto, también puede asignar tablas de Hbase y operar con esos datos.

Consejo: Use Hive cuando tenga necesidades de almacenamiento y sea bueno en SQL y no quiera escribir trabajos de MapReduce. Sin embargo, un punto importante es que las consultas de Hive se convierten en un trabajo MapReduce correspondiente bajo el capó que se ejecuta en su clúster y le da el resultado. Hive hace el truco para ti. Pero todos y cada uno de los problemas no se pueden resolver con HiveQL. A veces, si necesita un procesamiento realmente detallado y complejo, es posible que deba tomar el refugio de MapReduce.

 

 

4- Pig: Pig es un lenguaje de flujo de datos que le permite procesar enormes cantidades de datos de manera muy fácil y rápida transformándolos repetidamente en pasos. Básicamente tiene 2 partes, el PigInterpreter y el lenguaje PigLatin. Pig fue desarrollado originalmente en Yahoo y lo usan ampliamente. Al igual que Hive, las consultas PigLatin también se convierten en un trabajo MapReduce y le dan el resultado. Puede usar Pig para datos almacenados tanto en HDFS como en Hbase de manera muy conveniente. Al igual que Hive, Pig también es realmente eficiente en lo que debe hacer. Le ahorra mucho esfuerzo y tiempo al permitirle no escribir programas MapReduce y realizar la operación a través de consultas directas de Pig.

Consejo: Use Pig cuando quiera hacer muchas transformaciones en sus datos y no quiera tomarse la molestia de escribir trabajos de MapReduce.

 

 

5- Sqoop: Sqoop es una herramienta que te permite transferir datos entre bases de datos relacionales y Hadoop. Admite cargas incrementales de una sola tabla o una consulta SQL de forma libre, así como trabajos guardados que se pueden ejecutar varias veces para importar actualizaciones realizadas en una base de datos desde la última importación. No solo esto, sino que las importaciones también se pueden utilizar para completar tablas en Hive o HBase. Junto con esto Sqoop también le permite exportar los datos a la base de datos relacional desde el clúster.

Consejo: utilice Sqoop cuando tenga muchos datos heredados y desee que se almacenen y procesen en su clúster Hadoop o cuando desee agregar de forma incremental los datos a su almacenamiento existente.




6- Oozie: Ahora tienes todo en su lugar y quieres hacer el procesamiento, pero te parece una locura comenzar los trabajos y administrar el flujo de trabajo manualmente todo el tiempo. Especialmente en los casos en que se requiere encadenar múltiples trabajos de MapReduce para lograr un objetivo. Le gustaría tener alguna forma de automatizar todo esto. No te preocupes, Oozie viene al rescate. Es un sistema de planificador de flujo de trabajo escalable, confiable y extensible. Simplemente defina sus flujos de trabajo (que son gráficos acíclicos dirigidos) una vez y Oozie se ocupará del resto. Puede programar trabajos de MapReduce, trabajos de Pig, trabajos de Hive, importaciones de Sqoop e incluso sus programas Java utilizando Oozie.

Consejo: use Oozie cuando tenga que ejecutar muchos trabajos y desee una forma eficiente de automatizar todo en función del tiempo (frecuencia) y la disponibilidad de datos.




7- Flume / Chukwa: Flume y Chukwa son herramientas de agregación de datos y le permiten agregar datos de manera eficiente, confiable y distribuida. Puede recoger datos de algún lugar y volcarlos en su clúster. Dado que está manejando BigData, tiene más sentido hacerlo de manera distribuida y paralela, en lo que ambas herramientas son muy buenas. Solo tiene que definir sus flujos y alimentarlos con estas herramientas y el resto de las cosas se hará automáticamente por ellos.

Consejo: elija Flume / Chukwa cuando tenga que agregar grandes cantidades de datos a su entorno Hadoop de manera distribuida y paralela.





8- Avro: Avro es un sistema de serialización de datos. Proporciona funcionalidades similares a sistemas como Protocol Buffers, Thrift, etc. Además de eso, proporciona otras características importantes como estructuras de datos enriquecidas, un formato de datos binario compacto y rápido, un archivo contenedor para almacenar datos persistentes, un mecanismo RPC , y bastante simple integración dinámica del lenguaje. Y la mejor parte es que Avro se puede usar fácilmente con MapReduce, Hive y Pig. Avro usa JSON para definir tipos de datos.

Consejo: use Avro cuando desee serializar su BigData con buena flexibilidad.

La lista es bastante grande, pero he cubierto solo las herramientas más importantes. Las horas extraordinarias si siento que algo más debería mencionarse aquí definitivamente lo haría.


  • x
  • convención:

lucniba
VIP Publicado 2019-11-13 14:19:58 Útil(1) Útil(1)
Muy buen aporte, gracias por compartir, en efecto, dice el dicho, el que es martillo a todo le ve cara de clavo, es bueno analizar que herramientas son las adecuadas para cada escenario, al post le agregaría una breve introducción sobre spark y Kafka que son de mucha utilidad, y en el caso de MapReduce, sugeriría implementar Tez en su lugar, que es más eficiente. Un saludo.
  • x
  • convención:

Comentar

Responder
Debe iniciar sesión para responder la publicación Inicio de sesión | Registrarse

Aviso Aviso: Para garantizar sus legítimos derechos e intereses, la comunidad y los terceros no publicarán contenido que pueda generar riesgos legales a las partes, por ejemplo, pornografía, contenido político, contenido sobre juego, consumo y tráfico de drogas, así como contenido que viole los derechos de propiedad intelectual de terceros, por ejemplo, secretos comerciales, marcas, derechos de autor, patentes y privacidad personal. No comparta su cuenta ni su contraseña con terceros. Todas las operaciones realizadas usando su cuenta se considerarán como sus acciones y todas las consecuencias que estas acciones generen serán responsabilidad suya. Para obtener información detallada, consulte la “ Política de privacidad.”
Si el botón para adjuntar no está disponible, actualice Adobe Flash Player con la versión más reciente
¡Ingresa y disfruta de todos los beneficios para los miembros!

¡Ingresa y disfruta de todos los beneficios para los miembros!

Inicia sesión