Conjuntos de datos distribuidos Resilientes
Conjuntos de datos distribuidos resilientes (RDD) es una estructura de datos fundamental del Spark. Es una colección de objetos distribuidos inmutable.Cada conjunto de datos en RDD se divide en particiones lógicas, que pueden ser calculados en diferentes nodos del clúster. DDR puede contener cualquier tipo de Python, Java, u objetos Scala, incluyendo clases definidas por el usuario.
Formalmente, un RDD es una de sólo lectura, colección particionado de discos.DDR se pueden crear a través de operaciones deterministas en cualquiera de los datos en el almacenamiento estable u otros DDR. RDD es una colección con tolerancia a fallos de elementos que pueden ser operados en paralelo.
Hay dos formas de crear DDR - paralelización una colección existente en el programa piloto, o que hacen referencia a un conjunto de datos en un sistema de almacenamiento externo, como un sistema compartido de archivos, HDFS, HBase, o cualquier fuente de datos que ofrece un formato de entrada Hadoop.
Spark hace uso del concepto de RDD para lograr operaciones MapReduce más rápidas y eficientes. Primero vamos a discutir cómo las operaciones MapReduce tienen lugar y por qué no son tan eficientes.
Compartir datos es lenta en MapReduce
MapReduce es ampliamente adoptado para el procesamiento y la generación de grandes conjuntos de datos con un paralelo, distribuido algoritmo en un clúster.Permite a los usuarios escribir cálculos paralelos, utilizando un conjunto de operadores de alto nivel, sin tener que preocuparse por la distribución del trabajo y tolerancia a fallos.
Por desgracia, en la mayoría de los marcos actuales, la única manera de reutilizar datos entre cálculos (Ex - entre dos trabajos de MapReduce) es escribir a un sistema de almacenamiento estable externo (Ex - HDFS). Aunque este marco ofrece numerosas abstracciones de acceso a los recursos computacionales de un clúster, los usuarios quieren más.
Ambos iterativos y interactivas aplicaciones requieren el intercambio de datos más rápido a través de trabajos paralelos. El intercambio de datos es lenta en MapReduce debido a la replicación, la serialización, y el disco de IO.En cuanto a sistema de almacenamiento, la mayoría de las aplicaciones de Hadoop, que gastan más del 90% de las veces haciendo HDFS operaciones de lectura y escritura.
Operaciones iterativos en MapReduce
Reutilizar los resultados intermedios a través de múltiples cálculos en aplicaciones de múltiples etapas. La siguiente ilustración explica cómo funciona el marco actual, mientras que hace las operaciones iterativos en MapReduce.Esto incurre en gastos generales sustanciales debido a la replicación de datos, el disco I / O, y la serialización, lo que hace que el sistema lento.

Operaciones interactivas en MapReduce
Usuario ejecuta consultas ad-hoc sobre el mismo subconjunto de datos. Cada consulta va a hacer el disco E / S en el almacenamiento estable, que puede domina el tiempo de ejecución de aplicaciones.
La siguiente ilustración explica cómo funciona el marco actual al hacer las consultas interactivas sobre MapReduce.

Intercambio de datos usando RDD Spark
El intercambio de datos es lenta en MapReduce debido a la replicación, laserialización, y el disco de IO. La mayoría de las aplicaciones de Hadoop, que gastan más del 90% de las veces haciendo HDFS operaciones de lectura y escritura.
Reconociendo este problema, los investigadores desarrollaron un marco especializado llamado Apache Spark. La idea clave de la chispa es R esilient Distributed D atasets (RDD); apoya en memoria de cálculo de procesamiento.Esto significa, que almacena el estado de la memoria como un objeto a través de los puestos de trabajo y el objeto es compartible entre los puestos de trabajo. El intercambio de datos en la memoria es de 10 a 100 veces más rápida que la red y disco.
Tratemos ahora de averiguar cómo las operaciones iterativas e interactivas tienen lugar en RDD Spark.
Operaciones iterativos en RDD Spark
La ilustración que figura a continuación se muestran las operaciones iterativos en RDD Spark. Será almacenar resultados intermedios en una memoria distribuida lugar de almacenamiento estable (disco) y hacer el sistema más rápido.
Nota - Si la memoria distribuido (RAM) es suficiente para almacenar resultados intermedios (estado del trabajo), entonces se almacenará esos resultados en el disco.

Operaciones interactivas en RDD Spark
Esta ilustración muestra las operaciones interactivas sobre RDD Spark. Si diferentes consultas se ejecutan en el mismo conjunto de datos en varias ocasiones, estos datos en particular se puede mantener en la memoria para mejores tiempos de ejecución.

Por defecto, cada RDD transformada puede ser recalcula cada vez que ejecute una acción en él. Sin embargo, también puede persistir un RDD en la memoria, en cuyo caso Spark mantendrá los elementos alrededor en el clúster para el acceso mucho más rápido, la próxima vez que se consulta es. También hay soporte para persistencia de DDR en el disco, o replicado en varios nodos.
No hay comentarios.:
Publicar un comentario