hadoop - ¿Cuál es la diferencia entre Flume y Sqoop?
(7)
- Apache Sqoop y Apache Flume trabajan con varios tipos de fuentes de datos. Flume funciona bien en fuentes de datos de transmisión continua que se generan continuamente en un entorno hadoop, como los archivos de registro de múltiples servidores.
mientras que Apache Sqoop está diseñado para funcionar bien con cualquier tipo de sistema de base de datos relacional que tenga conectividad JDBC.
Sqoop también puede importar datos de bases de datos NoSQL como MongoDB o Cassandra y también permite la transferencia directa de datos o Hive o HDFS. Para transferir datos a Hive usando la herramienta Apache Sqoop, se debe crear una tabla para la cual el esquema se toma de la base de datos en sí.
En Apache Flume, la carga de datos está controlada por eventos, mientras que en Apache Sqoop la carga de datos no está controlada por eventos.
4. El flujo es una mejor opción cuando se mueven datos de transmisión masiva desde varias fuentes como JMS o el directorio Spooling, mientras que Sqoop es un ajuste ideal si los datos se encuentran en bases de datos como Teradata, Oracle, MySQL Server, Postgres o cualquier otra base de datos compatible con JDBC. Es mejor usar Apache Sqoop.
5.En Apache Flume, los datos fluyen a HDFS a través de múltiples canales, mientras que en Apache Sqoop HDFS es el destino para importar datos.
6.Apache Flume tiene una arquitectura basada en agentes, es decir, el código escrito en flume se conoce como agente responsable de la obtención de datos, mientras que en Apache Sqoop la arquitectura se basa en conectores. Los conectores en Sqoop saben cómo conectarse con los diversos orígenes de datos y obtener datos en consecuencia.
Por último, Sqoop y Flume no se pueden usar para lograr las mismas tareas, ya que se desarrollan específicamente para cumplir diferentes propósitos. Los agentes de Apache Flume están diseñados para obtener datos de transmisión como los tweets de Twitter o el archivo de registro del servidor web, mientras que los conectores Sqoop están diseñados para funcionar solo con fuentes de datos estructurados y obtener datos de ellos.
Apache Sqoop se usa principalmente para transferencias de datos en paralelo, para importaciones de datos, ya que copia datos rápidamente donde Apache Flume se usa para recopilar y agregar datos debido a su naturaleza distribuida, confiable y rutas de respaldo de alta disponibilidad.
Tanto Flume como Sqoop están diseñados para el movimiento de datos, entonces ¿cuál es la diferencia entre ellos? ¿Bajo qué condición debo usar Flume o Sqoop?
Canal artificial:
Flume is a framework for populating Hadoop with data. Agents are populated
throughout ones IT infrastructure – inside web servers, application servers
and mobile devices, for example – to collect data and integrate it into Hadoop.
Sqoop:
Sqoop is a connectivity tool for moving data from non-Hadoop data stores – such
as relational databases and data warehouses – into Hadoop. It allows users to
specify the target location inside of Hadoop and instruct Sqoop to move data
from Oracle,Teradata or other relational databases to the target.
Puedes ver el Post completo.
Desde http://flume.apache.org/
Flume es un servicio distribuido, confiable y disponible para recopilar, agregar y mover de manera eficiente grandes cantidades de datos de registro.
Flume ayuda a recopilar datos de una variedad de fuentes, como registros, jms, directorio, etc.
Se pueden configurar varios agentes de canal para recopilar un gran volumen de datos.
Se escala horizontalmente.
Desde http://sqoop.apache.org/
Apache Sqoop (TM) es una herramienta diseñada para transferir eficientemente datos en masa entre Apache Hadoop y almacenes de datos estructurados, como las bases de datos relacionales.
Sqoop ayuda a mover datos entre hadoop y otras bases de datos y puede transferir datos en paralelo para el rendimiento.
Flume: Un caso de uso muy común es la recopilación de datos de registro de un sistema: un banco de servidores web (agregándolos en HDFS para su posterior análisis).
Sqoop: Por otro lado, está diseñado para realizar importaciones masivas de datos a HDFS desde almacenes de datos estructurados. El caso de uso simple será una organización que ejecute una importación nocturna de sqoop para cargar los datos del día desde una base de datos de producción en una casa de datos de Hive para su análisis.
--Desde la guía definitiva.
Sqoop
- Sqoop puede realizar importación / exportación desde RDBMS a HDFS / HIVE / HBASE
- sqoop solo importa / exporta datos estructurados no estructurados o semiestructurados.
Canal artificial
- Importe datos de flujo desde múltiples fuentes, en su mayoría de forma semiestructurada y no estructurada. Ahora Kafka es mejor alternativa para flume.
Sqoop y Flume están diseñados para satisfacer las necesidades de ingesta de datos, pero tienen diferentes propósitos. Apache Flume funciona bien para transmitir fuentes de datos que se generan continuamente en un entorno hadoop, como los archivos de registro de múltiples servidores, mientras que Apache Sqoop funciona bien con cualquier RDBMS que tenga conectividad JDBC.
Sqoop en realidad está destinado a transferencias de datos a granel entre hadoop y cualquier otro almacén de datos estructurado. Flume recopila datos de registro de muchas fuentes, los agrega y los escribe en HDFS.
Me encontré con esta interesante infografía que explica las diferencias entre los dos proyectos apache Sqoop y Flume -
Tanto Sqoop como Flume, extraen los datos de la fuente y los empujan al fregadero. La principal diferencia es que Flume es impulsado por eventos, mientras que Sqoop no lo es.