El sistema de programación de tareas Big Whale es un sistema de programación de tareas informáticas distribuidas desarrollado por Meiyou Big Data. Proporciona programación de ejecución DAG para tareas de procesamiento por lotes como Spark y Flink y monitoreo y programación de estado para tareas de procesamiento de flujo. Detección de aplicaciones de gran memoria y otras funciones. El servicio está desarrollado en base a Spring Boot 2.0 y se puede ejecutar después de ser empaquetado.
Preparación ambiental
Java 1.8+
mysql 5.1.0+
Instalar
1. Crear base de datos: ballena grande
2. Ejecute el script de la base de datos: big-whale.sql
3. Configure la contraseña de la cuenta de base de datos relevante y la información SMTP de acuerdo con el entorno Spring Boot.
4. Configuración: big-whale.properties
Descripción del elemento de configuración
ssh.user: nombre de usuario de inicio de sesión remoto SSH con permisos de ejecución de script (la plataforma utilizará este usuario como usuario de ejecución de script unificado)
ssh.password: contraseña de usuario de inicio de sesión remoto ssh
dingding.enabled: si se deben habilitar las alertas de DingTalk
dingding.watcher-token: token de robot de grupo público de Dingding
Yarn.app-memory-threshold: Límite de memoria de la aplicación Yarn (unidad: MB), -1 desactiva la detección
Yarn.app-white-list: Lista blanca de aplicaciones Yarn (la memoria solicitada por las aplicaciones en la lista excede el límite superior y no se emitirá ninguna alarma)
5. Modificar: $FLINK_HOME/bin/flink, referencia: flink (debido a que flink solo puede leer el paquete jar local al enviar una tarea, es necesario descargar el paquete jar de hdfs y reemplazar el parámetro de ruta del paquete jar en el script cuando ejecutando el comando de envío).
6. Embalaje: paquete limpio mvn
puesta en marcha
1. Verifique si el puerto 17070 está ocupado. Si es así, cierre el proceso ocupado o modifique la configuración del número de puerto del proyecto y vuelva a empaquetarlo.
2. Copie big-whale.jar en el directorio de destino y ejecute el comando: java -jar big-whale.jar
Configuración inicial
1. Abrir: http://localhost:17070
2. Ingrese el administrador de la cuenta y la contraseña del administrador.
3. Haga clic en: Gestión de permisos->Gestión de usuarios, modifique la dirección de correo electrónico de la cuenta actual a una dirección de correo electrónico legal y existente; de lo contrario, el correo electrónico no se enviará.
4. Agregar clúster
Gestión de clústeres->Gestión de clústeres->Nuevo
"Dirección de administración de hilo" es la dirección de interfaz de usuario WEB de Yarn ResourceManager
El "directorio de almacenamiento del paquete" es la ruta de almacenamiento cuando el paquete se carga en el clúster HDFS, como por ejemplo: /data/big-whale/storage
"Admitir usuarios de proxy de tareas de Flink", "Lista negra de tareas de procesamiento de secuencias" y "Lista negra de tareas de procesamiento por lotes" son reglas de asignación de tareas personalizadas internamente. No complete los campos.
5. Agregar agente
Gestión de clústeres->Gestión de agentes->Nuevo
Se pueden agregar varias instancias (solo se admiten direcciones IP, se pueden especificar números de puerto y el valor predeterminado es 22. Al ejecutar el script, se seleccionará una instancia aleatoriamente para su ejecución. Si no se puede acceder a la instancia, se seleccionará la siguiente instancia). seleccionado aleatoriamente. La ejecución falla cuando ambos son inalcanzables.
Después de seleccionar un clúster, será uno de los agentes el que envíe tareas de Spark o Flink en el clúster.
6. Agregar usuarios del clúster
Gestión de clústeres->Usuario de clúster->Agregar
La semántica de esta configuración es: cola de recursos de hilo (--queue) y usuario proxy (--proxy-user) que los usuarios de la plataforma pueden usar en el clúster seleccionado.
7. Agregar marco de cálculo
Gestión de clústeres->Administración->Agregar
Los comandos de envío de diferentes tareas de Spark o Flink en el mismo clúster pueden ser diferentes. Por ejemplo, el comando de envío de Spark 1.6.0 es spark-submit y el comando de envío de Spark 2.1.0 es spark2-submit.