Ventajas de Spark sobre Hadoop
Contenidos
Apache Spark es una de las nuevas tendencias más calientes en el ámbito tecnológico. Es el marco con probablemente el mayor potencial para hacer realidad el fruto del matrimonio entre Big Data y Machine Learning.
Se ejecuta rápidamente -hasta 100 veces más rápido que el tradicional Hadoop MapReduce debido al funcionamiento en memoria, que ofrece objetos de datos robustos, distribuidos y tolerantes a fallos (llamados RDD), y se integra maravillosamente con el mundo del aprendizaje automático y el análisis de gráficos a través de paquetes complementarios, como Mlib y GraphX.
Spark se implementa en Hadoop/HDFS y está escrito principalmente en Scala, un lenguaje de programación funcional, similar a Java. De hecho, Scala necesita la última instalación de Java en su sistema y se ejecuta en JVM. Sin embargo, para la mayoría de los principiantes, Scala no es un lenguaje que aprendan primero para aventurarse en el mundo de la ciencia de datos. Afortunadamente, Spark ofrece una maravillosa integración con Python, llamada PySpark, que permite a los programadores de Python interactuar con el marco de trabajo de Spark y aprender a manipular datos a escala y trabajar con objetos y algoritmos sobre un sistema de archivos distribuido.
Desventajas de la chispa
Hoy en día, Spark se ha convertido en uno de los proyectos más activos del ecosistema Hadoop, con muchas organizaciones que adoptan Spark junto a Hadoop para procesar big data. En 2017, Spark contaba con 365.000 miembros en meetup, lo que representa un crecimiento de 5 veces en dos años. Ha recibido la contribución de más de 1.000 desarrolladores de más de 200 organizaciones desde 2009.
Hadoop MapReduce es un modelo de programación para procesar conjuntos de big data con un algoritmo paralelo y distribuido. Los desarrolladores pueden escribir operadores masivamente paralelos, sin tener que preocuparse por la distribución del trabajo y la tolerancia a fallos. Sin embargo, un reto de MapReduce es el proceso secuencial de varios pasos que se necesita para ejecutar un trabajo. En cada paso, MapReduce lee datos del clúster, realiza operaciones y escribe los resultados en HDFS. Dado que cada paso requiere una lectura y escritura en el disco, los trabajos de MapReduce son más lentos debido a la latencia de la E/S del disco.
Spark se creó para hacer frente a las limitaciones de MapReduce, realizando el procesamiento en memoria, reduciendo el número de pasos en un trabajo y reutilizando los datos en múltiples operaciones paralelas. Con Spark, sólo se necesita un paso en el que se leen los datos en la memoria, se realizan las operaciones y se escriben los resultados, lo que da lugar a una ejecución mucho más rápida. Spark también reutiliza los datos utilizando una caché en memoria para acelerar en gran medida los algoritmos de aprendizaje automático que llaman repetidamente a una función sobre el mismo conjunto de datos. La reutilización de los datos se consigue mediante la creación de DataFrames, una abstracción sobre Resilient Distributed Dataset (RDD), que es una colección de objetos que se almacena en la memoria y se reutiliza en múltiples operaciones de Spark. Esto reduce drásticamente la latencia, haciendo que Spark sea varias veces más rápido que MapReduce, especialmente cuando se realiza aprendizaje automático y análisis interactivo.
¿Es spark una base de datos?
Durante años, Hadoop fue el campeón indiscutible del big data, hasta que llegó Spark. Desde su lanzamiento inicial en 2014, Apache Spark ha estado incendiando el mundo del big data. Con las cómodas API de Spark y las velocidades prometidas de hasta 100 veces más rápidas que Hadoop MapReduce, algunos analistas creen que Spark ha señalado la llegada de una nueva era en big data.
¿Cómo puede Spark, un marco de procesamiento de datos de código abierto, crujir toda esta información tan rápidamente? El secreto es que Spark se ejecuta en memoria en el clúster y no está atado al paradigma de dos etapas de MapReduce de Hadoop. Esto hace que el acceso repetido a los mismos datos sea mucho más rápido. Spark puede ejecutarse como una aplicación independiente o sobre Hadoop YARN, donde puede leer datos directamente de HDFS. Decenas de grandes empresas tecnológicas, como Yahoo, Intel, Baidu, Yelp y Zillow, ya utilizan Spark como parte de sus pilas tecnológicas.
En sus propias palabras, Apache Spark es “un motor analítico unificado para el procesamiento de datos a gran escala”. El mantenimiento de Spark corre a cargo de la fundación sin ánimo de lucro Apache Software Foundation, que ha lanzado cientos de proyectos de software de código abierto. Más de 1200 desarrolladores han contribuido a Spark desde el inicio del proyecto.
Spark big data
Hadoop y Spark, ambos desarrollados por la Apache Software Foundation, son marcos de código abierto ampliamente utilizados para las arquitecturas de big data. Cada marco contiene un amplio ecosistema de tecnologías de código abierto que preparan, procesan, gestionan y analizan conjuntos de big data.
Apache Hadoop es una utilidad de software de código abierto que permite a los usuarios gestionar grandes conjuntos de datos (desde gigabytes hasta petabytes), habilitando una red de ordenadores (o “nodos”) para resolver vastos e intrincados problemas de datos. Es una solución altamente escalable y rentable que almacena y procesa datos estructurados, semiestructurados y no estructurados (por ejemplo, registros de clics en Internet, registros de servidores web, datos de sensores IoT, etc.).
Apache Spark -que también es de código abierto- es un motor de procesamiento de datos para grandes conjuntos de datos. Al igual que Hadoop, Spark divide las tareas grandes en diferentes nodos. Sin embargo, tiende a rendir más rápido que Hadoop y utiliza la memoria de acceso aleatorio (RAM) para almacenar y procesar los datos en lugar de un sistema de archivos. Esto permite a Spark manejar casos de uso que Hadoop no puede.