Introducción a Azkaban, instalación de implementación y caso

Uno: Introducción a Azkaban

Azkaban es un programador de tareas de flujo de trabajo por lotes de código abierto de Linkedin . Se utiliza para ejecutar un conjunto de trabajos y procesos en un orden específico dentro de un flujo de trabajo. Azkaban define un formato de archivo KV para establecer dependencias entre tareas y proporciona una interfaz de usuario web fácil de usar para mantener y realizar un seguimiento de su flujo de trabajo.
Tiene las siguientes características:
  1. Interfaz de usuario web
  2. Flujo de trabajo fácil de cargar
  3. Fácil de establecer la relación entre las tareas
  4. Flujo de trabajo de programación
  5. Autenticación / Autorización (trabajo de autorización)
  6. Capacidad de finalizar y reiniciar el flujo de trabajo
  7, mecanismo de complemento modular y enchufable
  8, espacio
  de trabajo del proyecto 9, flujo de trabajo y registro y auditoría de tareas

Dos: el despliegue y la instalación de Azkaban

2.1: Instalar azkaban

1. Cree un directorio azkaban en / opt / module en hadoop102
[módulo root @ hadoop102] # mkdir azkaban

2. Descomprima el paquete tar que contiene azkaban en el directorio especificado Aquí, todos mis paquetes tar sobre azkaban se colocan en el directorio / opt / software / Azkaban_tars. Luego, ejecute lo siguiente en secuencia.

[root @ hadoop102 Azkaban_tars] # tar -zxvf azkaban-ejecutor-server-2.5.0.tar.gz -C / opt / module / azkaban /

[root @ hadoop102 Azkaban_tars] # tar -zxvf azkaban-sql-script-2.5.0.tar.gz -C / opt / module / azkaban /

[root @ hadoop102 Azkaban_tars] # tar -zxvf azkaban-web-server-2.5.0.tar.gz -C / opt / module / azkaban /

[root@hadoop102 azkaban]# ll
total 4
drwxr-xr-x. 2 root root 4096 Aug  6 09:37 azkaban-2.5.0
drwxr-xr-x. 7 root root   92 Aug  6 09:37 azkaban-executor-2.5.0
drwxr-xr-x. 8 root root  103 Aug  6 09:38 azkaban-web-2.5.0

3. Ingrese al directorio descomprimido / opt / module / azkaban y cambie el nombre del archivo

[root @ hadoop102 azkaban] # mv azkaban-web-2.5.0 / server
[root @ hadoop102 azkaban] # mv azkaban-ejecutor-2.5.0 / ejecutor

4. Ingrese mysql mysql -uroot -p123456
y realice las siguientes operaciones. El propósito es ejecutar el script incorporado de azkaban y luego crear una tabla mysql

mysql> create database azkaban;
mysql> use azkaban;
mysql> source /opt/module/azkaban/azkaban-2.5.0/create-all-sql-2.5.0.sql

Finalmente, la siguiente tabla en mostrar tablas bajo azkaban indica que la importación fue exitosa y que puede salir para salir de mysql en este momento.

mysql> mostrar tablas;
± ----------------------- +
| Tables_in_azkaban |
± ----------------------- +
| active_executing_flows |
| active_sla |
| ejecuciones_flujos |
| execution_jobs |
| execution_logs |
| project_events |
| project_files |
| project_flows |
| project_permissions |
| project_properties |
| project_versions |
| proyectos |
| propiedades |
| horarios |
| desencadenantes |
± ----------------------- +
15 filas en conjunto (0,00 seg)

2.2: Generar par de claves y certificado

1. Contenido relacionado con el certificado y el par de claves:
Keytool es una herramienta de gestión de certificados de datos de Java que permite a los usuarios gestionar su propio par de claves públicas / privadas y los certificados relacionados.
-keystore Especifica el nombre y la ubicación del almacén de claves (todo tipo de información generada se almacenará en el archivo
.keystore ) -genkey (o -genkeypair) Genera un par de claves
-alias Especifica un alias para el par de claves generado, si no, el valor predeterminado es mykey
-keyalg especifica el algoritmo de clave RSA / DSA El valor predeterminado es DSA

2. Ejecute keytool -keystore keystore -alias jetty -genkey -keyalg RSA en el directorio / opt / module / azkaban / server de hadoop102

Vea el contenido de la imagen para más detalles.

Inserte la descripción de la imagen aquí

Esto está debajo de ls, puede ver que hay un archivo de almacén de claves más en el directorio actual, que se acaba de generar.

Inserte la descripción de la imagen aquí

2.3: Configuración de sincronización horaria

Razones para la configuración de la sincronización horaria: cuando azkaban realiza la programación horaria, los requisitos de tiempo son muy precisos y es necesario asegurarse de que la hora del clúster se sincronice a voluntad.

1. Primero configure la zona horaria en el nodo del servidor. Si el archivo de configuración de la zona horaria Asia / Shanghai no existe en el directorio / usr / share / zoneinfo /, use tzselect para generarlo. De lo contrario, vaya a https: / / www. cnblogs.com/liuxinrong/articles/12739198.html

2. Después de configurar el primer paso, copie el archivo de zona horaria para sobrescribir la configuración de la zona horaria local del sistema y ejecute los siguientes comandos en el clúster hadoop.

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.4: Configuración del servidor del servidor web y del servidor de ejecución

1. Ingrese el directorio conf del directorio de instalación del servidor web azkaban y edite el archivo azkaban.properties

Después de ingresar, primero puede configurar nu para configurar el número de línea.
1) El contenido de las líneas 6 y 7 se modifica respectivamente para

#默认web server存放web文件的目录
web.resource.dir=/opt/module/azkaban/server/web/
#默认时区,已改为亚洲/上海 默认为美国
default.timezone.id=Asia/Shanghai

2) Cambie el contenido de la línea 11 a

#用户权限管理默认类(绝对路径)
user.manager.xml.file=/opt/module/azkaban/server/conf/azkaban-users.xml

3) .17 a 22 líneas son sobre mysql.Tenga en cuenta que el nombre de usuario y la contraseña de mysql y la IP de conexión de la base de datos deben configurarse de acuerdo con su propia situación real.

#数据库连接IP
mysql.host=hadoop102
#数据库实例名
mysql.database=azkaban
#数据库用户名
mysql.user=root
#数据库密码
mysql.password=123456
#最大连接数
mysql.numconnections=100

4) 32 a 36 líneas (puede guardar y salir después de la configuración)

#SSL文件名(绝对路径)
jetty.keystore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.password=123456
#Jetty主密码与keystore文件相同
jetty.keypassword=123456
#SSL文件名(绝对路径)
jetty.truststore=/opt/module/azkaban/server/keystore
#SSL文件密码
jetty.trustpassword=123456

3. Ingrese al directorio / opt / module / azkaban / ejecutor / conf para editar el archivo azkaban.properties
1) Cambie la zona horaria en la línea 2 a

default.timezone.id=Asia/Shanghai

2) Modifique la octava línea para

executor.global.properties=/opt/module/azkaban/executor/conf/global.properties

3) Las líneas 13 a 16 modifican el contenido de mysql (puede guardar y salir después de la configuración)

mysql.host=hadoop102
mysql.database=azkaban
mysql.user=root
mysql.password=123456

2. Configuración de usuario del servidor web
En el directorio conf del directorio de instalación del servidor web azkaban (/ opt / module / azkaban / server / conf), modifique el archivo azkaban-users.xml de acuerdo con la siguiente configuración para agregar usuarios administradores.

Para <user username="admin" password="admin" roles="admin,metrics"/>guardar y salir añadido al interior.

Inserte la descripción de la imagen aquí

2.5: Inicie el servidor ejecutor y el servidor web

1. Ejecute el comando de inicio en el directorio del servidor ejecutor
[root @ hadoop102 ejecutor] # bin / azkaban-executor-start.sh

2. Ejecute el comando de inicio en el directorio del servidor web azkaban
[root @ hadoop102 server] # bin / azkaban-web-start.sh

Nota:
1) Debe enfatizarse aquí que el comando de apagado no es la parada correspondiente, sino el
apagado.2) azkaban-web-shutdown.sh y azkaban-executor-shutdown.sh
3) Inicie el servidor ejecutor primero cuando lo encienda y apáguelo cuando necesite apagar el servidor web primero

Tenga en cuenta que estos dos son procesos de bloqueo. Podemos iniciar una ventana y luego jps para verificar el proceso, podemos ver que el ejecutor y la web se han iniciado
[root @ hadoop102 server] # jps
7504 Jps
7478 AzkabanWebServer
7432 AzkabanExecutorServer

3. Verifique la
entrada final de web azkaban en el navegador de Google, https://hadoop102:8443/ingrese a la página, las primeras palabras dirán que no es privado, simplemente ignórelo y luego, en el siguiente nivel alto, vaya al siguiente punto.

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Ingrese la cuenta (admin) y contraseña (123456) e ingrese a la web

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

4. Introducción de la página en la página de inicio:


    projects:会罗列出来所有的工作流和任务
    scheduling:罗列出来所有的定时调度任务
    executing:显示正在执行的任务
    history:显示已经执行完毕的任务

Tres: caso de aplicación de Azkaban

3.1: Un caso de trabajo único

Antes de hablar sobre el caso, debemos comprender el comando de soporte de tipo de tarea incorporado y java en Azkaba .

1. Cree un nuevo archivo en Windows, también podríamos llamar hello.job ( tenga en cuenta que debe ser el archivo xxx.job, de lo contrario no será reconocido )
e ingrese el siguiente
tipo de contenido = comando
comando = echo'hello world '

2. Escriba el archivo en un paquete zip ( tenga en cuenta que debe ser un paquete zip, xxx.zip es suficiente, porque azkaban no admite otras versiones de paquetes comprimidos )

3. Cargar y ejecutar
1) Cree un proyecto a través de la plataforma de administración web azkaban y cargue el paquete zip del trabajo. Primero, cree un proyecto. Tome cualquier nombre de proyecto, pero tenga en cuenta que el nombre del proyecto no puede ser el mismo. La siguiente descripción la información puede ser opcional.

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

2) Después de Crear proyecto, irá a la página uploadf, haga clic en cargar en la esquina superior derecha para cargar el archivo comprimido zip, y luego podrá ver que el archivo se cargó correctamente.

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3) Haga clic en Ejecutar flujo para ejecutar el flujo de tareas, dado que somos una simple impresión, lo configuramos para que se ejecute inmediatamente.

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Haga clic en continuar

Inserte la descripción de la imagen aquí

4) Ver la ejecución de la tarea

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Vayamos a los detalles para ver los detalles.

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

3.2: Caso de script de shell de programación

1. Cree un nuevo directorio azkaban_job en / opt / module / azkaban de hadoop10, y luego cree un archivo de script date.sh en este directorio, complete el contenido, guarde y salga

#!/bin/bash
date >>  /opt/module/azkaban/azkaban_job/date.txt

2. Cree un test2.job en Windows, complete el contenido, porque no le hemos dado permiso de ejecución al script, así que use sh para ejecutar el script en este archivo.

type=command
command=sh /opt/module/azkaban/azkaban_job/date.sh

3. Subir test2.job a un paquete zip y subirlo a la web de azkaban, esta vez optamos por ejecutarlo regularmente para ver el efecto, y se ejecutará cada minuto.

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

Las tareas cronometradas se pueden ver en Programación

Inserte la descripción de la imagen aquí

En el historial, puede ver que la tarea se ha ejecutado con éxito 3 veces.

Inserte la descripción de la imagen aquí

Fuimos al directorio donde se imprimió el script en ese momento y descubrimos que azkaban había ejecutado correctamente nuestro script.

[root@hadoop102 azkaban_job]# pwd
/opt/module/azkaban/azkaban_job
[root@hadoop102 azkaban_job]# ls
date.sh  date.txt
[root@hadoop102 azkaban_job]# cat date.txt
Thu Aug  6 18:16:45 CST 2020
Thu Aug  6 18:17:45 CST 2020
Thu Aug  6 18:18:44 CST 2020
Thu Aug  6 18:19:45 CST 2020
[root@hadoop102 azkaban_job]#

Por último, hay una pregunta sobre el cierre de la tarea de cronometraje. El programa Eliminar en la Programación puede eliminar la tarea de cronometraje. En este caso, nuestras tareas cronometradas ya no se ejecutarán.

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_44080445/article/details/107831663
Recomendado
Clasificación