Spark: ¿Qué es RDD?

En términos generales, cuando se trata de sustantivos desconocidos, la primera reacción de todos es "¿Qué es?"

RDD es el contenido principal de Spark. Se explica en la documentación oficial de Spark de la siguiente manera: RDD es una colección de elementos tolerante a fallas que se pueden operar en paralelo. Se puede ver que hay dos palabras clave: tolerante a fallas y en paralelo. Primero, la tolerancia a fallas es una característica importante de RDD; segundo, son datos para computación paralela.

La explicación china de RDD es: Conjuntos de datos distribuidos resilientes, el nombre completo es Conjuntos de datos distribuidos resilientes. El objeto es el conjunto de datos, que es la base de datos en memoria. Los RDD son de solo lectura y particionables, y todo o parte de este conjunto de datos se puede almacenar en caché en la memoria y reutilizar en múltiples cálculos. La llamada elasticidad significa que se puede intercambiar con el disco cuando la memoria es insuficiente. Esto implica otra característica de RDD: la computación en memoria, que consiste en guardar datos en la memoria. Al mismo tiempo, para resolver el problema de la limitación de la capacidad de la memoria, Spark nos proporciona el mayor grado de libertad para almacenar en caché todos los datos, incluido si almacenarlos en caché y cómo almacenarlos en caché.

(Acerca de la configuración de caché y algunos conceptos básicos de Spark, /forum.php?mod=viewthreadamp; tid=295317 lo explica en detalle).

Si ve esto, si Todavía no tengo ningún concepto de RDD en mente, tal vez pueda consultar mi comprensión visual: RDD es un conjunto de datos armado.

Asunto: a. Dividido a partir de los datos fuente, correspondiente a la variable de división en el código fuente;

Las armas son las siguientes: b. El conjunto de datos contiene su propio "linaje; "información, Es decir, la variable de dependencias almacena su RDD principal y la relación entre los dos;

c. La función de cálculo, es decir, el método de conversión entre ella y el RDD principal, corresponde al iterador. (dividir) amp; función de cálculo en el código fuente;

d. Alguna metainformación sobre cómo particionar y almacenar ubicaciones, por ejemplo: particionador y ubicaciones preferidas.

Con estas armas, el mecanismo de tolerancia a fallas de RDD es obvio. La tolerancia a fallos, como su nombre indica, significa que un sistema informático puede seguir funcionando normalmente incluso en presencia de fallos. Por lo general, existen dos métodos para la tolerancia a fallas: punto de control y actualización de registro. RDD utiliza la actualización de registro. Punto de control (punto de control de datos) significa copiar grandes datos entre varias máquinas, lo cual es muy costoso. Esta operación de copia es muy lenta y consume muchos recursos de almacenamiento, por lo que está desierta. La actualización de registro (actualización de registros) solo admite la transformación de grano grueso, es decir, solo registra una única operación realizada en un solo bloque y luego crea una secuencia de transformación de un RDD para almacenarlos. Cuando se pierden datos, se pueden pasar. "linaje" Recalcular y restaurar datos. Sin embargo, cuando la cadena de linaje (secuencia de transformación) se vuelve muy larga, se recomienda que el usuario establezca algunos puntos de control de datos en este momento para acelerar la tolerancia a fallas. (método saveAstextFile configurado manualmente)