Varios modos de implementación de Spark, las características y construcción de cada modo
El modo de implementación centralizada se presentará en detalle a continuación.
Este modo no envía tareas en ejecución al clúster, solo las ejecuta en los nodos. Hay dos situaciones.
Ejecutar este modo es muy simple. Solo necesita descomprimir el paquete de instalación de Spark y cambiar algunas configuraciones comunes para usarlo. No necesita iniciar los demonios Spark Master y Worker (estos dos roles solo son necesarios cuando el. El clúster adopta el modo independiente. No es necesario iniciar el servicio Hadoop (a menos que necesite utilizar el servicio Hadoop). No es necesario iniciar los demonios Master y Worker de Spark (ambas funciones solo son necesarias en el modo de clúster independiente), ni tampoco es necesario iniciar el servicio Hadoop (a menos que desee utilizar HDFS).
Spark no tiene que ejecutarse en un clúster de hadoop, se puede especificar localmente e iniciar varios subprocesos. Las aplicaciones Spark se ejecutarán directamente localmente en modo multiproceso. Generalmente, para facilitar la depuración, el modo local independiente se divide en tres categorías:
Pasos de compilación:
(. Se produce un error en el medio: genera IllegalArgumentException (s.split(':', 1)[1], stackTrace)
pyspark.sql.utils.IllegalArgumentException: no puedes ubicar los contenedores de colmena conectados al metastore. Configure spark.sql. hive.metastore.jars.', el mensaje en línea es verificar la versión de jdk y se descubre que ubuntu 18.04 tiene como valor predeterminado el paquete openjdk-11-jdk (la versión de java indica 10.0.1). ) (reinstalar la versión openjdk-8-jdk no informará un error) p>
Ejecutar:
Use spark-shell, spark-submit, pyspark
Para Por ejemplo, use Spark-Shell:
Local: en una sola máquina, ejecutándose en un solo núcleo
local[k]: inicia k ejecutores
local[ ]: inicia el mismo número de ejecutores que cpu*
En lo anterior En este caso, local[N] y local[ ] equivalen a usar una sola máquina con una sola CPU *] es equivalente a. use múltiples subprocesos en una máquina para simular la computación distribuida Spark, que a menudo se usa para verificar si la lógica de un programa desarrollado es Hay un problema
Donde N representa los N subprocesos que se pueden usar, cada uno. El hilo tiene un núcleo.
Estos hilos de tareas se comparten en un proceso. Cuando se abren, solo se generará un proceso cuando se ejecute el programa, que soportará todas las tareas, incluido el proceso del cliente que envía las tareas. el cliente, el controlador Spark o la tarea de ejecución de Spark. También se usa a menudo para verificar las aplicaciones desarrolladas. ¿Hay algún problema con la lógica del programa o desea utilizar el marco informático de Spark sin muchos recursos? /p>
Uso: envíe la aplicación utilizando el parámetro local-cluster[x, y, z]: x representa el número de ejecutores que se generarán, y y z representan el número de núcleos y memoria por ejecutor, respectivamente.
El comando anterior significa que la aplicación se ejecutará utilizando 2 procesos de ejecución, cada uno con 3 núcleos y 1G de memoria. Como puede ver, se generarán los siguientes procesos durante la ejecución del programa: