¿Por qué Spark no está tan desarrollado como Hadoop?
Después de entrar en 2014, el ecosistema de código abierto Spark ha crecido significativamente y se ha convertido en uno de los proyectos de código abierto más activos en el campo de big data. La razón por la que Spark atrae tanta atención es principalmente por su alto rendimiento, alta flexibilidad y perfecta integración con el ecosistema Hadoop.
En primer lugar, Spark toma muestras de conjuntos de datos distribuidos y propone de forma innovadora el concepto de RDD (Resilient Distributed Dataset). Todas las tareas de análisis estadístico se transforman en gráficos acíclicos dirigidos (DAG) compuestos por las operaciones básicas de los RDD. El RDD se puede almacenar en la RAM y las tareas posteriores pueden leer directamente los datos en la RAM al mismo tiempo. Al analizar las dependencias entre tareas en el DAG, las tareas adyacentes se pueden fusionar, lo que reduce en gran medida una gran cantidad de resultados inexactos; Reducir la E/S del disco duro hace que las tareas complejas de análisis de datos sean más eficientes. Calculado a partir de esto, si la tarea es lo suficientemente compleja, Spark es una o dos veces más rápido que Map/Reduce.
En segundo lugar, Spark es un marco informático flexible que es adecuado para diferentes tipos de aplicaciones, como procesamiento por lotes, flujo de trabajo, análisis interactivo y procesamiento de tráfico. Por lo tanto, Spark también puede convertirse en un motor informático ampliamente utilizado y lo será. utilizarse en el futuro. Reemplazar Mapa/Reducir.
Finalmente, Spark puede interoperar con muchos componentes del ecosistema Hadoop. Spark puede ejecutarse en el marco de gestión de recursos de nueva generación YARN y también puede leer datos existentes almacenados en Hadoop, lo cual es una gran ventaja.
Aunque Spark tiene las tres ventajas anteriores, a juzgar por el estado actual de desarrollo y aplicación de Spark, Spark en sí también tiene muchas deficiencias, entre las que se incluyen principalmente los siguientes aspectos:
–Estabilidad en el Por otro lado, debido a problemas de calidad del código, Spark a menudo cometerá errores si se ejecuta durante mucho tiempo. En términos de arquitectura, debido a la gran cantidad de datos almacenados en caché en la RAM, la recolección de basura de Java es lenta, lo que resulta en un rendimiento inestable de Spark. El rendimiento de SQL en escenarios complejos es incluso inferior al de Map/Reduce existente.
–Cuando no se pueden procesar big data, los datos procesados por una sola máquina son demasiado grandes o los resultados intermedios exceden el tamaño de la RAM debido a problemas de datos, a menudo habrá espacio de RAM insuficiente o no habrá resultados. Sin embargo, el marco informático Map/Reduce puede manejar big data y, en este sentido, Spark no es tan eficaz como el marco informático Map/Reduce.
–No se admiten estadísticas de SQL complejas; la integridad de la sintaxis de SQL actualmente admitida por Spark no se puede aplicar al análisis de datos complejos. En términos de manejabilidad, la combinación de SparkYARN no es perfecta, lo que genera peligros ocultos para el proceso de uso y es propensa a varios problemas.
Aunque Spark está activo en muchas empresas de big data conocidas como Cloudera, MapR y Hortonworks, si las fallas de Spark no se solucionan a tiempo, la popularidad y el desarrollo de Spark se verán seriamente afectados. afectado.