Cinco cosas que necesita saber sobre Hadoop v. Apache Spark

Escuche cualquier conversación sobre big data y probablemente oirá mencionar Hadoop o Apache Spark. Aquí hay un breve vistazo a lo que hacen y cómo se comparan.

1: Hacen cosas diferentes. Hadoop y Apache Spark son marcos de big data, pero en realidad no tienen los mismos propósitos. Hadoop es esencialmente una infraestructura de datos distribuida: distribuye colecciones de datos masivas a través de múltiples nodos dentro de un grupo de servidores básicos, lo que significa que no necesita comprar y mantener hardware personalizado costoso. También indexa y realiza un seguimiento de esos datos, lo que permite el procesamiento y análisis de big data de manera mucho más efectiva que antes. Spark, por otro lado, es una herramienta de procesamiento de datos que opera en esas colecciones de datos distribuidos; no hace almacenamiento distribuido.

2: Puede usar uno sin el otro. Hadoop incluye no solo un componente de almacenamiento, conocido como Hadoop Distributed File System, sino también un componente de procesamiento llamado MapReduce, por lo que no necesita Spark para realizar su procesamiento. Por el contrario, también puede usar Spark sin Hadoop. Sin embargo, Spark no viene con su propio sistema de administración de archivos, por lo que debe integrarse con uno, si no con HDFS, con otra plataforma de datos basada en la nube. Spark fue diseñado para Hadoop, sin embargo, muchos están de acuerdo en que son mejores juntos.

3: Spark es más rápido.Spark es generalmente mucho más rápido que MapReduce debido a la forma en que procesa los datos. Mientras MapReduce opera en pasos, Spark opera en todo el conjunto de datos de una sola vez. "El flujo de trabajo de MapReduce se ve así: leer datos del clúster, realizar una operación, escribir resultados en el clúster, leer datos actualizados del clúster, realizar la siguiente operación, escribir los siguientes resultados en el clúster, etc.", explicó Kirk Borne. científico de datos principal de Booz Allen Hamilton. Spark, por otro lado, completa todas las operaciones de análisis de datos en la memoria y casi en tiempo real: "Leer datos del clúster, realizar todas las operaciones analíticas requeridas, escribir resultados en el clúster, listo", dijo Borne. Spark puede ser hasta 10 veces más rápido que MapReduce para el procesamiento por lotes y hasta 100 veces más rápido para el análisis en memoria, dijo.

4: Puede que no necesites la velocidad de Spark. El estilo de procesamiento de MapReduce puede estar bien si sus operaciones de datos y requisitos de informes son en su mayoría estáticos y puede esperar el procesamiento en modo por lotes. Pero si necesita realizar análisis sobre la transmisión de datos, como los de los sensores en una fábrica, o si tiene aplicaciones que requieren múltiples operaciones, probablemente quiera ir con Spark. La mayoría de los algoritmos de aprendizaje automático, por ejemplo, requieren múltiples operaciones. Las aplicaciones comunes de Spark incluyen campañas de marketing en tiempo real, recomendaciones de productos en línea, análisis de ciberseguridad y monitoreo de registros de máquinas.

5: Recuperación de fallos: diferente, pero bueno. Hadoop es naturalmente resistente a las fallas o fallas del sistema, ya que los datos se escriben en el disco después de cada operación, pero Spark tiene una resiliencia incorporada similar en virtud del hecho de que sus objetos de datos se almacenan en algo llamado conjuntos de datos distribuidos resilientes distribuidos en el clúster de datos. "Estos objetos de datos se pueden almacenar en memoria o en discos, y RDD proporciona una recuperación completa de fallas o fallas", señaló Borne.