Explore la práctica del motor de flujo de trabajo de código abierto Azkaban en MRS

Resumen: Este artículo presenta principalmente cómo construir azkaban de 0 a 1 en HUAWEI CLOUD e instruye a los usuarios sobre cómo enviar trabajos a MRS.

Este artículo es compartido por la comunidad HUAWEI CLOUD " Práctica del motor de flujo de trabajo de código abierto Azkaban en MRS ", autor: Ah YeYe.

entrada ambiental

Versión práctica: Apache azkaban 4.0.0 (tome la versión independiente como ejemplo, el proceso de configuración de la versión del clúster es similar), MRS 3.1.0 clúster normal.

Dirección del complemento de
Azkaban Sitio web oficial
de Azkaban Dirección de origen de Azkaban

Instalar azkaban-solo-servidor

Azkaban no proporciona paquetes binarios, los usuarios deben descargar el código fuente para compilar y empaquetar y obtener "azkaban-solo-server.zip" y "azkaban-db.zip".

1. Preparación ambiental.

  • Compre un ECS de servidor de nube elástica de Linux de HUAWEI CLOUD para instalar y ejecutar el cliente de clúster MRS y Azkaban, y vincule la IP pública elástica.
  • Instale y ejecute el cliente de clúster de MRS en el ECS. Por ejemplo, el directorio de instalación es "/opt/client".
  • Para preparar la tabla de datos, consulte el tutorial de MySQL.
  • Instale MySQL y otorgue acceso nativo. Nota: Azkaban 4.0.0 es compatible con MySQL 5.1.28 de forma predeterminada.
  • Cree una base de datos de Azkaban, extraiga "azkaban-db.zip" para obtener "create-all-sql-*.sql" e inicialícelo.

2. Cargue el paquete de instalación y descomprímalo

  • Cargue "azkaban-solo-server.zip" en el directorio "/opt/azkaban"
  • Ejecute los siguientes comandos para descomprimir y eliminar el paquete de instalación
unzip azkaban-solo-server.zip
rm -f unzip azkaban-solo-server.zip

3. Modifique el archivo de configuración "azkaban-solo-server/conf/azkaban.properties"

El puerto de configuración se puede modificar de acuerdo con la situación real. Los números de puerto de "jetty.port" y "mysql.port" pueden usar los valores predeterminados.

jetty.port=8081 
database.type=mysql 
mysql.port=3306 
mysql.host=x.x.x.x 
mysql.database=azkaban 
mysql.user=xxx 
mysql.password=xxx

4. Inicie azkaban-solo-servidor

source /opt/client/bigdata_env
cd /opt/azkaban/azkaban-solo-server
sh bin/start-solo.sh

5. Acceda a la interfaz de usuario WEB de Azkaban

Ingrese la URL " http:// ECS Elastic IP:port" en el navegador para ingresar a la interfaz de inicio de sesión de Azkaban WebUI e ingrese la información del usuario para iniciar sesión en el servicio de Azkaban.

ilustrar:

Puerto predeterminado: 8081; nombre de
usuario/contraseña: azkaban/azkaban;
archivo de configuración de cuenta de usuario: /opt/azkaban/azkaban-solo-server/conf/azkaban-users.xml

guía de configuración del complemento azkaban-hdfs-viewer

Para conectarse a HDFS, los usuarios deben descargar el código fuente para compilar y obtener "az-hdfs-viewer.zip" y haber completado la instalación de azkaban-solo-server.

1. Preparación ambiental

  • Configure el usuario de Azkaban, agregue un grupo de usuarios de supergrupo para otorgar acceso a HDFS
  • Agregue el usuario proxy de Azkaban al archivo de configuración de HDFS "core-stie.xml"
    a. Inicie sesión en la página Administrador y seleccione "Cluster > Service > HDFS > Configuration > All Configuration > HDFS (Service) > Custom"
    b. En el archivo de parámetros "core-site.xml" y agregue los siguientes elementos de configuración:

c. Una vez completada la configuración, haga clic en "Guardar" en la esquina superior izquierda
d. Seleccione "Descripción general > Más > Reiniciar servicio" e ingrese la contraseña para reiniciar el servicio HDFS

2. Cargue el paquete de instalación y descomprímalo

  • Cargue "az-hdfs-viewer.zip" en el directorio "/opt/azkaban/azkaban-solo-server/plugins/viewer"
  • Ejecute los siguientes comandos para descomprimir y eliminar el paquete de instalación
unzip az-hdfs-viewer.zip
rm -f az-hdfs-viewer.zip
  • Cambie el nombre del archivo descomprimido a "hdfs"
    mv az-hdfs-viewer hdfs

3. Modificar y guardar el archivo de configuración

  • Modifique el usuario proxy en el archivo "azkaban-solo-server/plugins/viewer/hdfs/conf/plugin.properties" al usuario proxy de Azkaban configurado en el paso 1. Modifique el directorio de almacenamiento de "ejecutar como usuario" al directorio de instalación de Azkaban, como "opt/azkaban/azkaban-solo-server".
viewer.name=HDFS 
viewer.path=hdfs 
viewer.order=1 
viewer.hidden=false 
viewer.external.classpaths=extlib/* 
viewer.servlet.class=azkaban.viewer.hdfs.HdfsBrowserServlet 
hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_2_0 
azkaban.should.proxy=false 
proxy.user=azkaban   // mrs集群中配置的azkaban代理用户名 
allow.group.proxy=true 
file.max.lines=1000 
#Specifying the error message we want user to get when they don't have permissionsviewer.access_denied_message=The folder you are trying to access is protected. 
execute.as.user=false 
// execute-as-user存放目录 
azkaban.native.lib=/opt/azkaban/azkaban-solo-server

Si el archivo no existe, debe crear y configurar manualmente el contenido anterior

4. Copie los paquetes necesarios del complemento HDFS en el directorio "/opt/azkaban/azkaban-solo-server/extlib"

cp /opt/client/HDFS/hadoop/share/hadoop/hdfs/*.jar /opt/azkaban/azkaban-solo-server/extlib
cp /opt/client/HDFS/hadoop/share/hadoop/client/hadoop-client-api-3.1.1-mrs-2.0.jar /opt/azkaban/azkaban-solo-server/extlib
cp /opt/client/HDFS/hadoop/share/hadoop/common/*.jar /opt/azkaban/azkaban-solo-server/extlib

Las diferentes versiones de MRS requieren diferentes versiones relacionadas con Hadoop. Puede consultar el directorio a través de find /opt/client.

5. Revisa la estructura del directorio

La estructura del directorio debe ser:

- azkaban-solo-server     
- bin    
- conf     
- extlib (hadoop相关插件第三方包)     
- lib     
- logs     
- plugins 
 - jobtypes(job插件目录) 
   - commonprivate.properties 
   - hive 
     - plugin.properties 
     - private.properties 
   - hadoopJava 
     - plugin.properties 
     - private.properties       
 - viewer            
   - hdfs                 
     - conf                      
       - plugin.properties                 
   - lib (az-hdfs-viewer.zip解压后的lib)     
- temp     
- web

6. Reinicie el servicio del servidor solo de Azkaban

cd /opt/azkaban/azkaban-solo-server
sh bin/shutdown-solo.sh
sh bin/start-solo.sh

7. Acceda al navegador HDFS

  • Ingrese la URL " http:// ECS Elastic IP:8081" en el navegador para ingresar a la interfaz de inicio de sesión de Azkaban WebUI, ingrese la información del usuario para iniciar sesión en el servicio de Azkaban
  • Haga clic en "HDFS"

plugins-jobtypes hadoop-job deployment run

Después de instalar azkaban-solo-server, implemente y verifique hadoop-job

1. Preparación ambiental

2. Cargue el archivo de configuración del complemento

  • Descomprima "azkaban-plugins-3.0.0.zip" y obtenga la carpeta "hadoopJava" en "azkaban-plugins-3.0.0\plugins\jobtype\jobtypes"
  • Cargue la carpeta "hadoopJava" en el directorio "/plugin". Si el directorio no existe, debe crear uno nuevo

3. Modifique el archivo de configuración "azkaban-solo-server/plugins/jobtypes/commonprivate.properties"

# set execute-as-user 
execute.as.user=false 

hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_2_0 
azkaban.should.proxy=false 
obtain.binary.token=false 
proxy.user=azkaban // MRS集群中配置的Azkaban代理用户名 
allow.group.proxy=true 
// execute-as-user存放目录 
azkaban.native.lib=/opt/azkaban/azkaban-solo-server 

# hadoop 
hadoop.home=/opt/client/HDFS/hadoop   //opt/client为MRS集群客户端安装目录 
hive.home=/opt/client/Hive/Beeline 
spark.home=/opt/client/Spark/spark 
hadoop.classpath=${hadoop.home}/etc/hadoop,${hadoop.home}/share/hadoop/common/*,${hadoop.home}/share/hadoop/common/lib/*,${hadoop.home}/share/hadoop/hdfs/*,${hadoop.home}/share/hadoop/hdfs/lib/*,${hadoop.home}/share/hadoop/yarn/*,${hadoop.home}/share/hadoop/yarn/lib/*,${hadoop.home}/share/hadoop/mapreduce/*,${hadoop.home}/share/hadoop/mapreduce/lib/* 
jobtype.global.classpath=${hadoop.home}/etc/hadoop,${hadoop.home}/share/hadoop/common/*,${hadoop.home}/share/hadoop/common/lib/*,${hadoop.home}/share/hadoop/hdfs/*,${hadoop.home}/share/hadoop/hdfs/lib/*,${hadoop.home}/share/hadoop/yarn/*,${hadoop.home}/share/hadoop/yarn/lib/*,${hadoop.home}/share/hadoop/mapreduce/*,${hadoop.home}/share/hadoop/mapreduce/lib/*

4. Verificación del programa de muestra

  • Prepare el archivo de datos de prueba "input.txt". El contenido del archivo se puede personalizar consultando el siguiente formato. La ruta de almacenamiento es "/opt/input.txt"
Ross    male    33  3674 
Julie   male    42  2019 
Gloria  female  45  3567 
Carol   female  36  2813
  • Cargue los datos de prueba "input.txt" a "hdfs /tmp/azkaban_test" a través del cliente HDFS
    a. Como usuario de instalación del cliente, inicie sesión en el nodo
    donde está instalado el cliente b. Ejecute el siguiente comando para cambiar al cliente directorio de instalación cd /opt/ client
    c. Ejecute el siguiente comando para configurar la variable de entorno source bigdata_env
    d. Ejecute el comando HDFS Shell para cargar el archivo hdfs dfs -put /opt/input.txt /tmp/azkaban_test
  • El usuario escribe y guarda el archivo "wordcount.job" localmente con los siguientes contenidos
type=hadoopJava 
job.extend=false 
job.class=azkaban.jobtype.examples.java.WordCount 
classpath=./lib/*,/opt/azkaban-solo-server-0.1.0-SNAPSHOT/lib/* 
force.output.overwrite=true 
input.path=/tmp/azkaban_test 
output.path=/tmp/azkaban_test_out
  • Ingrese la URL " http:// ECS elastic IP:port" en el navegador para ingresar a la interfaz de inicio de sesión de Azkaban WebUI, ingrese la información del usuario para iniciar sesión en el servicio de Azkaban y envíe el trabajo para su verificación.

Trabajo de comando de Spark: consulte Comandos de cliente

Hay dos modos de ejecución para las tareas de chispa, uno es el modo de comando y el otro es el modo de tipo de trabajo de chispa.

  1. Método de comando: debe especificar spark_home como /opt/client/Spark/spark/
    En el nodo cliente del clúster MRS, puede obtener la dirección de instalación real de Spark a través de echo $SPARK_HOME.
    Establezca la variable de entorno global de ECS donde se encuentra azkanban. Después de agregar la fuente {cliente MRS}, debe reiniciar azkaban para que surta efecto.
  2. Método de tipo de trabajo: consulte la implementación y operación de hadoop-job de plugins-jobtypes.

 

Haga clic en Seguir para conocer las nuevas tecnologías de HUAWEI CLOUD por primera vez~

{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4526289/blog/5527528
Recomendado
Clasificación