Curso de Big Data K20: descripción general de SparkSQL de Spark

Correo electrónico del autor del artículo: [email protected] Dirección: Huizhou, Guangdong

 ▲ El programa de este capítulo

⚪ Comprender el origen de SparkSQL de Spark;

⚪ Comprender las características SparkSQL de Spark;

⚪ Comprender las ventajas de SparkSQL de Spark;

⚪ Introducción de Master Spark a SparkSQL;

1. Descripción general de SparkSQL

1. Información general

Spark presenta un módulo de programación llamado SparkSQL para el procesamiento de datos estructurados . Proporciona una abstracción de programación llamada DataFrame (marco de datos) . La capa inferior de DF sigue siendo RDD y puede actuar como un motor de consulta SQL distribuido.

2. El origen de SparkSQL

El predecesor de SparkSQL es Shark. Durante el desarrollo de Hadoop, con el fin de proporcionar al personal técnico que estaba familiarizado con RDBMS pero que no entendía MapReduce una herramienta para comenzar rápidamente, surgió Hive y era la única herramienta SQL-on-Hadoop que se ejecutaba en hadoop en ese momento. . Sin embargo, la gran cantidad de procesos de aterrizaje de disco intermedio en el proceso de cálculo de MapReduce consume una gran cantidad de E/S y la eficiencia operativa es baja.

Posteriormente, con el fin de mejorar la eficiencia de SQL-on-Hadoop, se comenzaron a producir una gran cantidad de herramientas SQL-on-Hadoop, entre las que destacan:

1. Ejercicio de MapR

2. Impala de Cloudera

3. tiburón

Shark es uno de los componentes del ecosistema Spark de Berkeley Lab. Implementa algunas mejoras basadas en Hive, como introducir administración de caché, mejorar y optimizar el ejecutor, etc., y le permite ejecutarse en el motor Spark, aumentando así la velocidad. de consultas SQL. Obtenga una mejora de 10 a 100 veces.

Sin embargo, con el desarrollo de Spark, para el ambicioso equipo de Spark, Shark depende demasiado de Hive (como el uso del analizador gramatical de Hive, el optimizador de consultas, etc.), lo que restringe la regla One Stack de Spark. Integración de varios componentes de Spark, por lo que se propuso el proyecto SparkSQL.

SparkSQL abandonó el código Shark original, absorbió algunas de las ventajas de Shark, como el almacenamiento de columnas en memoria (almacenamiento en columnas en memoria), la compatibilidad con Hive, etc., y volvió a desarrollar el código SparkSQL.

Dado que no depende de Hive, SparkSQL ha ganado una gran comodidad en términos de compatibilidad de datos, optimización del rendimiento y expansión de componentes.

El 1 de junio de 2014, Reynold Xin, el anfitrión del proyecto Shark y del proyecto SparkSQL, anunció que el desarrollo de Shark se detendría y que el equipo pondría todos los recursos en el proyecto SparkSQL. En este punto, llegó el desarrollo de Shark. hasta el fin.

3. Funciones de SparkSQL

1. Se introdujo un nuevo tipo de RDD, SchemaRDD, que se puede definir como una tabla de base de datos tradicional.

2. Se pueden mezclar datos de diferentes fuentes en la aplicación, por ejemplo, se pueden unir datos de HiveQL y datos de SQL.

3. El marco de optimización de consultas está integrado: después de analizar SQL en un plan de ejecución lógica, finalmente se convierte en cálculo RDD.

4. Optimización de SparkSQL

Principalmente sparkSQL se ha optimizado en los siguientes puntos:

1. Almacenamiento en columnas en memoria

Ventajas del almacenamiento en columna:

① Al consultar datos masivos, no hay problemas de columnas redundantes. Si se basa en el almacenamiento de filas, se generarán columnas redundantes durante las consultas y las columnas redundantes generalmente se eliminarán de la memoria. O consulta basada en el almacenamiento de filas para implementar el índice materializado (crear árbol B+árbol B), pero el índice materializado también consume CPU

② Según el almacenamiento de columnas, el tipo de datos de cada columna es homogéneo. La primera ventaja es que puede evitar la conversión frecuente de tipos de datos en la memoria. El segundo beneficio es que se pueden utilizar algoritmos de compresión más eficientes, como algoritmos de compresión incremental y algoritmos de compresión binaria. Género: Masculino Femenino Masculino Femenino 0101

  Los datos de la tabla de SparkSQL se almacenan en la memoria, no en el método de almacenamiento de objetos JVM original, sino en el almacenamiento de columnas de memoria, como se muestra en la siguiente figura.

Este método de almacenamiento tiene grandes ventajas en términos de uso de espacio y tasa de rendimiento de lectura .

Para el método de almacenamiento de objetos JVM original, cada objeto generalmente agrega entre 12 y 16 bytes de sobrecarga adicional (métodos toString, código hash, etc.), como los datos de una tabla de productos de comercio electrónico de 270 MB.

Supongo que te gusta

Origin blog.csdn.net/u013955758/article/details/132567582
Recomendado
Clasificación