En este artículo le permite entender el siguiente nivel de rendimiento alto Spark

Introducción: extracto de "China Nuevos Telecomunicaciones": En los últimos años, grandes volúmenes de datos se ha convertido en una industria caliente y el mundo académico en cuestión, ya que con el rápido crecimiento de la capacidad de almacenamiento, CUP fuera de los terrenos de una elevación sustancial de distancia de la capacidad, el aumento de ancho de banda de la red. Sino también por la gran época de los datos de un total de un fuerte apoyo técnico. De la Web 1.0 a la Web 2.0, cada usuario se convierte en un auto-Media, un proveedor de contenidos de Internet, cambie esta forma de datos generados es promover la llegada de la era de los grandes datos. "

Lo que es grande de datos que?

datos grande está estructurado y el componente de datos no estructurados, que es 10% de los datos estructurados almacenados en diversas bases de datos en el 90% de datos no estructurados, los datos no estructurados, tales como imágenes, vídeos, correo electrónico, páginas web, etc. , ahora, las aplicaciones de datos grandes para penetrar en todos los ámbitos de la vida, la toma de decisiones basada en datos, un incremento sustancial en el grado de sociedad de la información de inteligencia. En la actualidad, la tecnología nacional se centró en la minería de datos algoritmo de correlación, la aplicación práctica de la investigación y la teoría relacionada, con la participación de la industria más ampliamente, incluyendo venta al por menor, fabricación, servicios financieros, las telecomunicaciones, las profesiones relacionadas con la red, medicina y ciencias de la salud, unidad concentra en la parte de las instituciones de educación superior, institutos de investigación y empresas, especialmente en el campo emergente de la misma. la enorme Alibaba, Tencent, Baidu y otros gigantes de papel en la promoción del desarrollo de la tecnología, y estos gigantes de Internet en el gran proceso de datos, y se han adoptado la hadoop, Spark el marco de procesamiento.

Spark ¿Qué es?

Apache Spark está construido alrededor de la velocidad, facilidad de uso y sofisticados análisis de datos de gran tamaño procesamiento marco, desarrollado originalmente en 2009 por la Universidad de California, Berkeley AMPLab, y se convirtió en uno de los proyectos de código abierto Apache en 2010, y así sucesivamente Hadoop y la tormenta otras grandes volúmenes de datos y la tecnología en comparación con MapReduce, Spark tiene las siguientes ventajas:

  • Spark ofrece un marco amplio y unificado para la gestión de una variedad de necesidades con diferentes propiedades (datos de texto, datos de gráficos, etc.) de los conjuntos de datos y fuentes de datos (por lotes o datos de flujo de datos en tiempo real) de procesamiento de datos de gran tamaño.
  • La información oficial sobre Spark puede aplicar clúster Hadoop en la memoria para ejecutar 100 veces más rápido, o incluso ser capaz de ejecutar la aplicación en la velocidad del disco de 10X.
    Aquí Insertar imagen Descripción
Arquitectura y ecología:

¿Cuál es el sistema ecológico Spark? ecosistema chispa llama BDAS (Bernoulli pila de análisis de datos), este artículo pretende ecosistema chispa brevemente en algunos componentes comunes, por lo que tenemos una sencilla comprensión del ecosistema chispa (BDAS), saben lo que pueden hacer los componentes cosaAquí Insertar imagen Descripción

Introducción a los componentes
  • Spark Core : componente de núcleo Spark, su funcionamiento es un RDD objeto de datos (elásticas conjuntos de datos distribuidos), de cuatro componentes en la figura Spark Core anteriormente dependen de Spark Core, Core es simplemente considerado ecosistema Spark Spark offline plataforma de computación, por ejemplo: mapa de Spark Core proporciona, a reducir el operador puede completar tareas realizadas motor de cálculo mapreduce computación.
  • Spark Streaming : Flujo de computación ecosistema marco Spark, el objeto de datos es DSTREAM su operación, de hecho, es una Spark Streaming corriente explotó en una serie de puestos de trabajo de computación corto lotes. Aquí motor lote es Spark Core, es decir el (lote duración del intervalo) de acuerdo con la chispa de datos de entrada Streaming tamaño del lote (por ejemplo, un segundo) se divide en una sección de la serie de datos (DSTREAM), cada segmento de datos se convierte en el Spark Core el RDD y, a continuación, se convirtió al Spark operación de cálculo Streaming DSTREAM para el cálculo de los cambios en la operación de conversión Spark RDD, siguiendo la figura oficial: Aquí Insertar imagen Descripción
    en la realización interna, representado por un continuo DSTREAM RDD en un conjunto de series de tiempo. Cada RDD contiene fluyen sus propios datos dentro del intervalo de tiempo específico (datos anteriores figura 0-1 segundos en un RDD recibido, de 1 a 2 segundos datos de recepción se convierte en un RDD), utilizando los dibujos, Spark DSTREAM Streaming la operación se convertirá en un uso correspondiente de Spark operador Core (función) en la operación de Rdd.
  • SQL la Chispa : simplemente piensan que permite a los usuarios utilizar SQL para escribir los datos de computación, intérprete de SQL SQL se convertirá en la misión central de chispa, de modo que la gente no entiende entender chispa SQL de los datos se puede calcular por escrito forma parecida SQL al papel de la colmena en el ecosistema Hadoop, proporcionando SparkSql CLI (interfaz de línea de comandos), a continuación, puede interfaz de línea de comando para escribir SQL.
  • Graphx el Spark : el ecosistema Spark figura y cálculo del mapa de cálculo en paralelo, una versión más reciente es compatible actualmente con seis clásica el PageRank, el número del triángulo, y el gráfico de la máxima conectividad como figura algoritmo de la ruta más corta.
  • MLIB Spark : Spark una biblioteca de aprendizaje de máquina escalable, que encapsula muchos algoritmos comunes, incluidas la clasificación binaria, regresión, clustering, el filtrado colaborativo. Por aprendizaje automático y estadísticas escenas.
  • Tachyon : Tachyon es un sistema de archivos de memoria distribuida, puede ser entendida como HDFS memoria.
  • Local, independiente, hilado, mesos : Spark cuatro modelos de despliegue, en el que el modo local local es generalmente utilizado para desarrollar la prueba, independiente Spark está integrado en el marco de gestión de recursos, el hilado y mesos son otros dos marco de gestión de recursos, con una chispa cuál es el modelo de despliegue, es decir, el uso de los cuales marco de gestión de recursos.

Por lo general, cuando la cantidad de datos que deben transformarse es superior a la dimensión independiente (como nuestro equipo tiene 4 GB de memoria, y tenemos que hacer frente a más de 100 GB de datos), entonces podemos optar por racimos calcular chispa, a veces es posible que tenga que manejar la cantidad de datos no es grande, pero el cálculo es muy complicado y requiere mucho tiempo, entonces también podemos optar por tomar ventaja de la poderosa agrupación chispa recursos informáticos, la paralelización calcula su diagrama de la arquitectura es el siguiente:
Aquí Insertar imagen Descripción

  • Spark Core : Spark que contiene una función básica, especialmente el RDD definido API, tanto la operación como operación en él. Chispa de otras bibliotecas se construyen en la parte superior de la RDD y Spark Core
  • SQL la Chispa : proporcionar variante Colmena lenguaje de consulta SQL (HiveQL) por Apache Hive es un API para interactuar con el Spark. Cada tabla de base de datos se trata como un RDD, consulta SQL chispa se convierte en operaciones de chispa.
  • Streaming de la Chispa : el procesamiento y el control de los flujos de datos en tiempo real. Spark Streaming permite que el programa sea capaz de manejar datos en tiempo real lo mismo que RDD ordinaria
  • MLlib : una máquina usada comúnmente aprendizaje biblioteca de algoritmos, el algoritmo se implementa como una chispa de la operación de la RDD. Esta biblioteca contiene algoritmos de aprendizaje escalables, tales como la clasificación, regresión y otros conjuntos de datos grandes necesitan operar iteración.
  • GraphX : gráfico de control, que ilustra el funcionamiento y un conjunto paralelo de algoritmo y un conjunto de herramientas calculados. GraphX extiende API RDD, que comprende un submapa gráfico de control creada, el funcionamiento de todos los vértices en la ruta de acceso
  • arquitectura Figura Spark compone como sigue:
    Aquí Insertar imagen Descripción
  • Administrador de la Cluster : En el modo autónomo, el nodo maestro es los controles maestros todo el racimo, para monitorear trabajador. En el modo de hilo para el Explorador
  • nodos de trabajo : el nodo, nodo de cómputo responsable de controlar empezar Ejecutor o el controlador.
  • Conductor : Ejecutar aplicación de la función main ()
  • Ejecutor : actuador, una Solicitud de un proceso en ejecución en un nodo trabajador

Spark 与 hadoop

  • Hadoop tiene dos módulos principales, el módulo de almacenamiento distribuido y distribuido módulo informático mapreduce HDFS
  • despertar en sí no proporciona un sistema de archivos distribuido, por lo que el análisis de la chispa depende principalmente del sistema de archivos distribuidos Hadoop, HDFS
  • Hadoop con la chispa de datos de MapReduce se puede calcular y se compara con el MapReduce, chispa más rápido y proporcionar más rica en características
  • La relación es la siguiente:
    Aquí Insertar imagen Descripción
  • chispa diagrama de flujo de la operación es como sigue:
    Aquí Insertar imagen Descripción
  • Aplicación para construir el entorno operativo de encendido, iniciar SparkContext
  • SparkContext al gestor de recursos (puede ser independiente, mesos, hilado) aplicación que se ejecuta recursos ejecutor, y empezar StandaloneExecutorbackend,
  • Ejecutor tarea de aplicar SparkContext
  • SparkContext distribuirá la aplicación de Ejecutor
  • La figura SparkContext construido DAG, DAG el gráfico en el escenario, para enviar el programador de tareas taskset, y finalmente por el Grupo de programador de tareas para un Ejecutor corriendo
  • Tarea que se ejecuta en el Ejecutor, se queda sin todos los recursos libres

Spark Características Run:

  • Cada aplicación adquirió proceso ejecutor exclusivo que ha estado residiendo durante la aplicación y ejecución de la tarea multiproceso manera. Este mecanismo de aislamiento de aplicación es ventajoso, tanto desde un punto de vista de programación (Driver programación de cada uno su propia tarea), o desde la perspectiva de la operación (ejecución de la tarea de diferente aplicación en diferentes JVM) es, por supuesto, esto significa que Spark datos de la aplicación no se puede compartir entre aplicaciones, a menos que los datos se escriben a los sistemas de almacenamiento externo
  • Spark no tiene nada que ver con el administrador de recursos, siempre y cuando consiguen proceso ejecutor, y puede comunicarse entre sí para mantenerlo
  • El cliente debe presentar SparkContext cercanos nodos de trabajo (nodos que ejecutan Ejecutor), preferiblemente en el mismo bastidor, porque hay una gran cantidad de intercambio de información entre la operación SparkContext Spark Aplicación y ejecutor
  • mecanismo de optimización de tareas utiliza datos locales y la ejecución especulativa

Spark modos de funcionamiento:

modo Spark de operación variaba, flexible, cuando se despliega en una sola máquina, ambos pueden funcionar en modo local, sino que también puede funcionar con un modo pseudo-distribuida, y cuando se despliega en un clúster de manera distribuida, hay una serie de modos de operación elegir, dependiendo de la situación real de la agrupación, la programación de recursos, es decir, la parte inferior puede ser dependiente de marco de recursos de programación externo puede ser construido utilizando el modo independiente Spark. El apoyo a los recursos externos marco de la programación, la implementación actual incluye un modo de mesos relativamente estable, y el modo hadoop del hilo.

  • Independiente : Independiente del modo de funcionamiento del clúster
    independientes utiliza el modo Spark propio marco de la programación de recursos; el uso de Maestro / Esclavos arquitectura típica, elige para conseguir HA Maestro de ZooKeeper
  • La estructura de trama es el siguiente:
    Aquí Insertar imagen Descripción
    el nodo principal del nodo en el modo de cliente, el nodo trabajador Maestro y el nodo. En donde Conductor funcionar tanto nodo maestro, se puede ejecutar en el extremo del cliente local. Al presentar Trabajo de la chispa con chispa Shell Herramientas interactivas, ejecuta el controlador en el nodo maestro; cuando se utiliza chispa presentar herramienta de presentación de empleo o uso "nueva SparkConf.setManager (" chispa de Eclips, IDEA Plat: // maestro: 7077 ")" cuando se ejecuta la tarea de chispa, conductor se ejecuta en el lado del cliente local. proceso de funcionamiento es como sigue con referencia a las figuras :(: http: //blog.csdn.net/gamer_gyt/article/details/51833681)
    Aquí Insertar imagen Descripción
  1. SparkContext conectado con el maestro, el Registro y solicitar recursos (CPU y memoria) Core
  2. Maestro decidió asignar recursos de los que los trabajadores y el acceso a los recursos en el trabajador, y luego empezar a StandaloneExecutorBackend basado en la información reportada en el periodo de solicitud reivindica recursos SparkContext y trabajador latidos del corazón;
  3. StandaloneExecutorBackend registrado en SparkContext;
  4. Transmitir el código de SparkContext applicaiton StandaloneExecutorBackend, y SparkContext applicaiton código de análisis, construir el DAG, DAG y presentado al Programador de descomponerse en la etapa (Acción encontrarse al usar, dará a luz Trabajo; Trabajo cada uno contiene una o más Etapa , la etapa genera normalmente antes de la adquisición de datos externa y aleatoria), y luego sometido a la Etapa (taskset denominado alternativamente) al programador de tareas, tareas Programador de tareas es responsable de asignar al trabajador correspondiente, y finalmente sometido a StandaloneExecutorBackend realizado;
  5. StandaloneExecutorBackend creará un grupo de subprocesos ejecutor de tareas Begin, y el informe SparkContext hasta la finalización de tareas
  6. Después de todo tarea completada, SparkContext al Maestro cancelado, la liberación de los recursos
Resumen: Otra Spark aplicación importante el procesamiento de datos se puede describir desde la perspectiva de ingenieros. A continuación, el ingeniero se refiere al uso de chispa para construir un gran número de desarrolladores de software para aplicaciones de procesamiento de datos producen. Estos desarrolladores a entender los conceptos de ingeniería de software y principios, tales como la encapsulación, diseño de la interfaz y la programación orientada a objetos. Por lo general tienen un título en ciencias de la computación. Ellos diseñan e implementan sistemas de software construir un negocio con la escena a través de sus propias habilidades de ingeniería de software. Para los ingenieros, el Spark ofrece una manera simple entre estas aplicaciones agrupadas paralelizados, los sistemas distribuidos ocultos, la complejidad del procesamiento de la comunicación en red y tolerancia a fallos. El sistema permite a los ingenieros para implementar tareas al mismo tiempo, no es suficiente autoridad para supervisar, comprobar y ajustar la aplicación. Componentes del módulo API permite la reutilización de trabajo existente y pruebas locales más fácil.

Por último, digamos simplemente se les pedirá algo preguntas muy comunes durante varias entrevistas.

Hadoop y barajar la misma chispa y diferencias:

Desde la perspectiva de alto nivel, los dos no son una gran diferencia. Son asignador de salida se lleva a cabo la partición, a una partición diferente de un reductor diferente (Spark hay ShuffleMapTask) (en el reductor de chispa puede ser la siguiente etapa en el ShuffleMapTask, puede ser ResultTask). Reductor tal como un tampón a la memoria, los datos agregados de borde del lado del mezclador, los datos agregados se lleva a cabo hasta bien después de reducir () (chispa Puede ser una serie de operaciones posteriores).

Desde el punto de vista de bajo nivel, la diferencia no es pequeña. Hadoop MapReduce es un tipo de base, en la cosechadora () y reducir () los registros de tipo debe. Esto tiene la ventaja de que la cosechadora / reducir () puede procesar grandes volúmenes de datos, los datos de entrada, ya que puede obtenerse a través de flujo de salida (Mapper para cada pieza de datos de pedido hacer primero shuffle, el reductor de cada pieza de datos ordenados hacer de combinación). Corriente opción por defecto Spark es basado en hash, por lo general HashMap para mezclar a la suma de los datos, no los datos se clasifican por adelantado. Si necesita los datos clasificados, a continuación, es necesario llamar a su propia operación sortByKey similar (); si usted es una chispa 1.1 usuarios, spark.shuffle.manager puede establecer el tipo, se va a clasificar los datos. En el Chispa 1.2, una especie implementarse como la Orden aleatorio por defecto.

Desde el punto de vista de la implementación, hay muchas diferencias en los dos. proceso de procesamiento de Hadoop MapReduce en unas fases claras: map (), derrame, de combinación , reproducción aleatoria, clasificar, reducir () y similares. Cada etapa de sus funciones, se puede lograr mediante una para cada fase de la función de acuerdo con las ideas de programación de procedimiento. En Spark, no existe tal función fases claras, y sólo una serie de diferentes etapas de la transformación (), por lo que el derrame, de combinación, las operaciones de agregados y otros necesitan inherente en la transformación () en.

Mapreduce y Spark son la computación paralela, entonces ¿cuáles son sus similitudes y diferencias:

  • Hadoop trabajo se llama un trabajo, trabajo que se divide en mapa de tareas y reducir la tarea, cada tarea se ejecuta en su propio proceso, cuando el final de la tarea, el proceso terminará.
  • chispa tarea se vuelve solicitud presentada por el usuario, una aplicación que corresponde a una sparkcontext, aplicación hay trabajo múltiple, operando cada acción de activación generará un empleo. El trabajo puede ser ejecutado en serie o en paralelo, cada puesto de trabajo tiene una etapa pluralidad, un proceso de etapa aleatoria DAGSchaduler dividiendo la dependencia entre el trabajo RDD de cada etapa hay una pluralidad de tareas, hay TaskSchaduler composición taskset distribuido a cada ejecutor en el ciclo de ejecución, ejecutor y la vida aplicación es el mismo, incluso si no hay trabajo se está ejecutando, por lo que la tarea puede comenzar rápidamente a leer cálculo de memoria.
  • Hadoop el trabajo único mapa y reducir las operaciones, sino también en la capacidad de expresar carece proceso mr se repetirá de lectura y escritura hdfs, causa una gran cantidad de operaciones io tenga que gestionar varios relación de trabajo.
  • cálculo iterativo Spark se realiza en la memoria, el API proporciona un número de operaciones tales como RDD unirse, GroupBy similares, y se puede lograr una buena fallo por el DAG.

chispa optimización cómo hacerlo?

chispa de sintonización más compleja, pero en general se puede dividir en tres zonas, una Tune) de nivel de plataforma: Tarro de evitar la distribución de paquetes innecesarios, la mejora de los datos locales seleccionando formatos de almacenamiento eficientes tales como parquet, 2) aplicación nivel de programa de ajuste: la optimización del filtro se reduce tareas demasiado pequeños operadores, reduciendo la sobrecarga de recursos de un solo registro, el procesamiento de datos inclinación, caché compleja, ejecución del trabajo en paralelo con RDD, etc., sintonizar 3) nivel de JVM: entorno cantidad adecuada de recursos, establecer un razonable la JVM, para permitir método de serialización eficiente tales Kyro, el aumento de memoria, y así la cabeza.

Publicado 36 artículos originales · alabanza ganado 13 · vistas 1051

Supongo que te gusta

Origin blog.csdn.net/weixin_44598691/article/details/105021603
Recomendado
Clasificación