Análisis comparativo de las similitudes y diferencias entre Spark y Hadoop (muy detallado !!!)

(1) Spark: Es una plataforma informática distribuida, un marco informático escrito en lenguaje scala, un motor de análisis de big data rápido, universal y escalable basado en memoria.

(2) Hadoop: Es un ecosistema de administración, almacenamiento e informática distribuidos;
incluye tres partes principales: HDFS (almacenamiento), MapReduce (informática), Yarn (programación de recursos)

1. Comparación de los dos principios de realización

1. 并行计算Tanto Hadoop como Spark , ambos utilizan el modelo MR para el cálculo. Un trabajo en Hadoop se llama Trabajo Job里面分为Map Task和Reduce Task阶段y cada tarea se ejecuta en su propio proceso. Cuando la tarea finaliza, el proceso también finalizará.

2. Se llaman las tareas enviadas por los usuarios de Spark application, una aplicación corresponde a un SparkContext, hay varios trabajos en la aplicación y se genera un trabajo cada vez que se activa una operación de acción. Estos trabajos se pueden ejecutar en paralelo o en serie. Hay varias etapas en cada trabajo. La etapa se deriva dividiendo el trabajo por DAGScheduler a través de las dependencias entre los RDD en el proceso de reproducción aleatoria. Hay varias tareas en cada etapa para formar un conjunto de tareas. TaskScheduler se distribuye a cada ejecutor para su ejecución; el ciclo de vida de un ejecutor es el mismo que el de una aplicación, incluso si no hay ningún trabajo en ejecución, todavía existe, por lo que la tarea puede comenzar a leer rápidamente 内存para el cálculo.

Por lo tanto, la razón por la que Spark es más rápido que MR también está aquí. MR necesita solicitar recursos cuando se inicia y se destruye cuando se agota, pero después de que Spark obtiene el proceso, el proceso siempre existirá, incluso si no hay ningún trabajo en ejecución, por lo que el siguiente trabajo puede ser directamente Comience, no es necesario volver a solicitar recursos.

Nota: una aplicación ——> trabajos múltiples ——> un trabajo múltiples etapas ——> una etapa múltiples tareas

2. Comparación de los dos en muchos aspectos

(1) Spark compara el módulo informático MR en Hadoop, pero la velocidad y la eficiencia son mucho más rápidas que MR;

(2) Spark no proporciona un sistema de gestión de archivos, por lo que debe ser integrado con otros sistemas de archivos distribuido para operar Se. 只是一个计算分析框架Usa específicamente para datos de almacenamiento de proceso distribuido calcular y TI. 本身并不能存储数据;

(3) Spark puede usar HDFS de Hadoop u otras plataformas de datos en la nube para el almacenamiento de datos, pero 一般使用HDFS来进行存储;

(4) Spark puede usar la base de datos HBase basada en HDFS, archivos de datos HDFS y datos de la base de datos Mysql a través de la conexión jdbc, Spark可以对数据库数据进行修改删除mientras que HDFS solo puede agregar datos y eliminar todas las tablas;

(5) Velocidad de procesamiento de datos Spark 秒杀MR en Hadoop;

(6) El modelo de diseño de procesamiento de datos de Spark es diferente de MR. Hadoop lee datos de HDFS y escribe resultados intermedios en HDFS a través de MR; luego vuelve a leer los datos de HDFS para MR y luego pasa a HDFS. Este proceso Al involucrar múltiples operaciones de colocación de discos, múltiples E / S de disco, la eficiencia no es alta; y el modo de diseño de Spark es leer los datos en el clúster 内存, almacenarlos y operar en él, y luego almacenarlos en el clúster hasta que se completen todas las operaciones;

(7) Spark es un motor de computación rápido y de alta eficiencia debido a la baja eficiencia de MR en Hadoop. La velocidad de procesamiento por lotes es casi 10 veces más rápida que MR, y la velocidad de análisis de datos en la memoria es casi 100 veces más rápida que Hadoop (de la descripción oficial del sitio web);

(8) Los RDD en Spark generalmente se almacenan en la memoria. Si la memoria no es suficiente para almacenar datos, los discos se usarán para almacenar datos al mismo tiempo. La recuperación ante desastres se puede lograr mediante mecanismos como conexiones de sangre entre RDD y datos almacenados en la memoria para cortar las relaciones sanguíneas. Los datos se pueden restaurar cuando se pierden datos; esto es similar a Hadoop, que se basa en lecturas y escrituras de disco, y los datos inherentes se pueden recuperar;

(9) Spark introduce el concepto de computación en clúster de memoria, que puede usarse 在内存集群计算中将数据集缓存在内存中para reducir la latencia de acceso;

(10) Se puede lograr una buena tolerancia a fallas mediante un gráfico acíclico dirigido por DAG en Spark.

3. Análisis comparativo detallado entre Spark y MR (énfasis)

3.1 Velocidad

(1) Spark almacena los datos intermedios de la operación 内存, lo que hace que el cálculo iterativo sea más eficiente;

(2) Los resultados intermedios de mapreduce deben guardarse 磁盘, por lo que inevitablemente habrá operaciones de io de disco, lo que afectará al rendimiento.

3.2 Tolerancia a fallos

(1) Spark es altamente tolerante a fallas. 弹性分布式数据集RDDLogra tolerancia a fallas de alta eficiencia. RDD es un conjunto de conjuntos de 只读datos distribuidos almacenados en la memoria del nodo . Estos conjuntos son elásticos. Si una determinada parte se pierde o tiene errores, se puede pasar el conjunto de datos completo La relación de sangre del proceso de cálculo para lograr la reconstrucción;

(2) La tolerancia a fallos de mapreduce solo se puede volver a calcular y el costo es alto.

3.3 Aplicabilidad

(1) Spark es más versátil. Spark proporciona múltiples API funcionales de transformación y acción, así como módulo de transmisión de chispas, computación gráfica GraphX, etc .;

(2) Mapreduce solo proporciona dos operaciones, mapear y reducir, y el soporte de la computación de flujo y otros módulos es relativamente escaso.

3.4 Marco y ecología

(1) El framework Spark y la ecología son más complejos y tienen una gama más amplia de aplicaciones. En primer lugar, incluye RDD, linaje sanguíneo, gráfico acíclico dirigido DAG durante la ejecución, división de etapas, etc. En muchos casos, las operaciones de Spark deben basarse en las necesidades de diferentes escenarios comerciales. Realice ajustes para cumplir con los requisitos de rendimiento.

(2) El marco de MR y su ecología son relativamente simples y los requisitos de rendimiento son relativamente débiles, pero la operación es relativamente estable 适合长期后台运行以及离线海量数据挖掘计算.

3.5 Entorno operativo

(1) Spark tiene aproximadamente cuatro modos de funcionamiento:

local: Operación local
standalone: Utilice el propio marco de gestión de recursos de Spark para ejecutar aplicaciones Spark (de uso común )
yarn: Envíe aplicaciones Spark a yarn para una operación similar a mr ( comúnmente utilizado )
mesos: un marco de gestión de recursos similar a Yarn

(2) MR se ejecuta en YARN

Cuatro, tres sistemas principales de infraestructura de computación distribuida

(1) MapreduceAdecuado para procesar datos estáticos masivos fuera de línea;

(2) SparkProcesamiento por lotes de datos en tiempo real;

(3) Storm/FlinkTransmisión de datos en línea en tiempo real.

Supongo que te gusta

Origin blog.csdn.net/weixin_43520450/article/details/108740235
Recomendado
Clasificación