Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Convertir los flujos de trabajo de Oozie a con AWS Step FunctionsAWS Schema Conversion Tool
Para convertir los flujos de trabajo de Apache Oozie, asegúrese de utilizar la AWS SCT versión 1.0.671 o superior. Además, familiarícese con la interfaz de línea de comandos (CLI) de. AWS SCT Para obtener más información, consulte CLIReferencia para AWS Schema Conversion Tool.
Temas
- Descripción general de la conversión
- Paso 1: Conectar con los servicios de origen y destino
- Paso 2: Configurar las reglas de asignación
- Paso 3: Configurar los parámetros
- Paso 4: Crear un informe de evaluación
- Paso 5: Convierte tus flujos de trabajo de Apache Oozie a con AWS Step FunctionsAWS SCT
- Ejecutando el CLI script
- Nodos de Apache Oozie que AWS SCT se pueden convertir en AWS Step Functions
Descripción general de la conversión
El código fuente de Apache Oozie incluye nodos de acción, nodos de flujo de control y propiedades de trabajo. Los nodos de acción definen los trabajos que se ejecutan en el flujo de trabajo de Apache Oozie. Cuando utiliza Apache Oozie para organizar el clúster de Apache Hadoop, un nodo de acción incluye un trabajo de Hadoop. Los nodos de flujo de control proporcionan un mecanismo para controlar la ruta del flujo de trabajo. Los nodos de flujo de control incluyen nodos tales como start
, end
, decision
, fork
y join
.
AWS SCT convierte sus nodos de acción de origen y los nodos de flujo de control en AWS Step Functions. En AWS Step Functions, defines tus flujos de trabajo en Amazon States Language (ASL). AWS SCT utiliza ASL para definir su máquina de estados, que es un conjunto de estados, que puede funcionar, determinar a qué estados realizar la transición a continuación, detenerse ante un error, etc. A continuación, AWS SCT carga los JSON archivos con las definiciones de las máquinas de estados. Luego, AWS SCT puede usar su rol AWS Identity and Access Management (IAM) para configurar sus máquinas de estado. AWS Step Functions Para obtener más información, consulte ¿Qué es AWS Step Functions? en la Guía para AWS Step Functions desarrolladores.
Además, AWS SCT crea un paquete de extensiones con AWS Lambda funciones que emulan las funciones de origen que AWS Step Functions no son compatibles. Para obtener más información, consulte Uso de paquetes de extensión con AWS Schema Conversion Tool.
AWS SCT migra las propiedades de su trabajo de origen a. AWS Systems Manager Para almacenar los nombres y valores de los parámetros, AWS SCT utiliza Parameter Store, una capacidad de AWS Systems Manager. Para obtener más información, consulte ¿Qué es AWS Systems Manager? en la Guía AWS Systems Manager del usuario.
Se puede utilizar AWS SCT para actualizar automáticamente los valores y los nombres de los parámetros. Debido a las diferencias de arquitectura entre Apache Oozie y Apache AWS Step Functions, es posible que tengas que configurar tus parámetros. AWS SCT puede encontrar un nombre o valor de parámetro específico en los archivos fuente y sustituirlos por valores nuevos. Para obtener más información, consulte Paso 3: Configurar los parámetros.
La siguiente imagen muestra el diagrama de arquitectura de la conversión a AWS Step Functions Apache Oozie.
Para iniciar la conversión, cree y ejecute el AWS SCT CLI script. Este script incluye el conjunto completo de comandos para ejecutar la conversión. Puede descargar y editar una plantilla del script de conversión de Apache Oozie. Para obtener más información, consulte Obtener CLI escenarios.
Asegúrese de que el script incluya los pasos siguientes.
Paso 1: Conectar con los servicios de origen y destino
Para iniciar la conversión de su clúster de Apache Oozie, cree un nuevo AWS SCT proyecto. A continuación, conecte con los servicios de origen y destino. Asegúrese de crear y aprovisionar AWS los recursos de destino antes de iniciar la migración. Para obtener más información, consulte Requisitos previos para utilizar Apache Oozie como origen.
En este paso, utilizará los siguientes AWS SCT CLI comandos.
CreateProject
— para crear un nuevo AWS SCT proyecto.AddSource
: para agregar los archivos de Apache Oozie de origen al proyecto de AWS SCT .ConnectSource
: para conectar con Apache Oozie como origen.AddTarget
— para añadirlo AWS Step Functions como objetivo de migración a su proyecto.ConnectTarget
: para conectar con AWS Step Functions.
Para ver ejemplos del uso de estos AWS SCT CLI comandos, consulteConexión a Apache Oozie.
Al ejecutar los ConnectTarget
comandos ConnectSource
o, AWS SCT intenta establecer la conexión con sus servicios. Si el intento de conexión falla, AWS SCT deja de ejecutar los comandos del CLI script y muestra un mensaje de error.
Paso 2: Configurar las reglas de asignación
Después de conectarse a los servicios de origen y destino, configure las reglas de asignación. Una regla de asignación define el destino de migración para los flujos de trabajo y parámetros de Apache Oozie de origen. Para obtener más información acerca de las reglas de asignación, consulte Mapeo de tipos de datos en el AWS Schema Conversion Tool.
Para definir los objetos de origen y destino para la conversión, utilice el comando AddServerMapping
. Este comando utiliza dos parámetros: sourceTreePath
y targetTreePath
. Los valores de estos parámetros incluyen una ruta explícita a los objetos de origen y destino. Para la conversión de Apache Oozie a AWS Step Functions , estos parámetros deben empezar por ETL
.
El siguiente ejemplo de código crea una regla de asignación para los objetos OOZIE
y AWS_STEP_FUNCTIONS
. En el paso anterior, agregó estos objetos a su AWS SCT proyecto mediante los AddTarget
comandos AddSource
y.
AddServerMapping -sourceTreePath: 'ETL.APACHE_OOZIE' -targetTreePath: 'ETL.AWS_STEP_FUNCTIONS' /
Para obtener más información sobre el AddServerMapping
comando, consulte la AWS Schema Conversion Tool CLIReferencia
Paso 3: Configurar los parámetros
Si los flujos de trabajo de Apache Oozie de origen utilizan parámetros, es posible que tenga que cambiar sus valores después de la conversión a AWS Step Functions. Además, es posible que necesite añadir nuevos parámetros para usarlos con su AWS Step Functions.
En este paso, utilice los comandos AddParameterMapping
y AddTargetParameter
.
Para reemplazar los valores de los parámetros en los archivos de origen, utilice el comando AddParameterMapping
. AWS SCT analiza los archivos de origen, busca los parámetros por nombre o valor y cambia los valores. Puede ejecutar un solo comando para analizar todos los archivos de origen. Para definir el alcance de los archivos que se van a analizar, utilice uno de los tres primeros parámetros de la siguiente lista. Este comando utiliza hasta seis parámetros.
filterName
: el nombre del filtro de los objetos de origen. Puede crear un filtro mediante el comandoCreateFilter
.treePath
: la ruta explícita a los objetos de origen.namePath
: la ruta explícita a un objeto de origen concreto.sourceParameterName
: el nombre del parámetro de origen.sourceValue
: el valor del parámetro de origen.targetValue
: el valor del parámetro de destino.
El siguiente ejemplo de código reemplaza todos los parámetros en los que el valor es igual a c:\oozie\hive.py
por el valor s3://bucket-oozie/hive.py
.
AddParameterMapping -treePath: 'ETL.OOZIE.Applications' -sourceValue: 'c:\oozie\hive.py' -targetValue: 's3://bucket-oozie/hive.py' /
El siguiente ejemplo de código reemplaza todos los parámetros en los que el nombre es igual a nameNode
por el valor hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020
.
AddParameterMapping -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -targetValue: 'hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020' /
El siguiente ejemplo de código reemplaza todos los parámetros en los que el nombre es igual a nameNode
y el valor es igual a hdfs://ip-55.eu-west-1.compute.internal:8020
por el valor del parámetro targetValue
.
AddParameterMapping -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -sourceValue: 'hdfs://ip-55-66-77-88.eu-west-1.compute.internal:8020' -targetValue: 'hdfs://ip-111-222-33-44.eu-west-1.compute.internal:8020' /
Para agregar un parámetro nuevo a los archivos de destino además de un parámetro existente en los archivos de origen, utilice el comando AddTargetParameter
. Este comando usa el mismo conjunto de parámetros que el comando AddParameterMapping
.
El siguiente ejemplo de código agrega el parámetro de destino clusterId
en lugar del parámetro nameNode
.
AddTargetParameter -treePath: 'ETL.OOZIE_SOURCE.Applications' -sourceParameter: 'nameNode' -sourceValue: 'hdfs://ip-55-66-77-88.eu-west-1.compute.internal:8020' -targetParameter: 'clusterId' -targetValue: '1234567890abcdef0' /
Para obtener más información sobre los CreateFilter
comandos AddServerMapping
AddParameterMapping
AddTargetParameter
,, y, consulte la AWS Schema Conversion Tool CLIReferencia
Paso 4: Crear un informe de evaluación
Antes de iniciar la conversión, le recomendamos que cree un informe de evaluación. Este informe resume todas las tareas de migración y detalla las acciones que surgirán durante la migración. Para asegurarse de que la migración no falle, consulte este informe y aborde las medidas que se deben tomar antes de la migración. Para obtener más información, consulte Informes de evaluación.
En este paso, utilice el comando CreateReport
. Este comando emplea dos parámetros. El primer parámetro describe los objetos de origen para los que se AWS SCT crea un informe de evaluación. Para ello, utilice uno de los siguientes parámetros: filterName
, treePath
o namePath
. Este parámetro es obligatorio. También puede agregar un parámetro booleano opcional forceLoad
. Si establece este parámetro entrue
, carga AWS SCT automáticamente todos los objetos secundarios para el objeto de origen que especifique en el CreateReport
comando.
El siguiente ejemplo de código crea un informe de evaluación para el nodo Applications
de los archivos Oozie de origen.
CreateReport -treePath: 'ETL.APACHE_OOZIE.Applications' /
A continuación, puede guardar una copia del informe de evaluación como un archivo con valores (CSV) PDF o separados por comas. Para ello, utilice el comando SaveReportPDF
o SaveReportCSV
.
El SaveReportPDF
comando guarda una copia del informe de evaluación como un PDF archivo. Este comando utiliza cuatro parámetros. El parámetro file
es obligatorio, mientras que otros parámetros son opcionales.
file
— la ruta al PDF archivo y su nombre.filter
: el nombre del filtro que creó anteriormente para definir el alcance de los objetos de origen que desee migrar.treePath
: la ruta explícita a los objetos de la base de datos de origen para los que guarda una copia del informe de evaluación.namePath
: la ruta que incluye solo los nombres de los objetos de destino para los que guarda una copia del informe de evaluación.
El SaveReportCSV
comando guarda el informe de evaluación en CSV archivos. Este comando utiliza cuatro parámetros. El parámetro directory
es obligatorio, mientras que otros parámetros son opcionales.
directory
— la ruta a la carpeta en la que se AWS SCT guardan los CSV archivos.filter
: el nombre del filtro que creó anteriormente para definir el alcance de los objetos de origen que desee migrar.treePath
: la ruta explícita a los objetos de la base de datos de origen para los que guarda una copia del informe de evaluación.namePath
: la ruta que incluye solo los nombres de los objetos de destino para los que guarda una copia del informe de evaluación.
El siguiente ejemplo de código guarda una copia del informe de evaluación en el archivo c:\sct\ar.pdf
.
SaveReportPDF -file:'c:\sct\ar.pdf' /
El siguiente ejemplo de código guarda una copia del informe de evaluación como CSV archivos en la c:\sct
carpeta.
SaveReportCSV -file:'c:\sct' /
Para obtener más información sobre los SaveReportCSV
comandos SaveReportPDF
yCreateReport
, consulte la AWS Schema Conversion Tool CLIReferencia
Paso 5: Convierte tus flujos de trabajo de Apache Oozie a con AWS Step FunctionsAWS SCT
Después de configurar el AWS SCT proyecto, convierta el código fuente y aplíquelo al Nube de AWS.
En este paso, utilice los comandos Convert
, SaveOnS3
, ConfigureStateMachine
y ApplyToTarget
.
El comando Migrate
migra los objetos de origen al clúster de destino. Este comando utiliza cuatro parámetros. Especifique el parámetro filter
o treePath
. El resto de los parámetros son opcionales.
filter
: el nombre del filtro que creó anteriormente para definir el alcance de los objetos de origen que desee migrar.namePath
: la ruta explícita a un objeto de origen concreto.treePath
: la ruta explícita a los objetos de la base de datos de origen para los que guarda una copia del informe de evaluación.forceLoad
— cuando se establece entrue
, carga AWS SCT automáticamente los árboles de metadatos de la base de datos durante la migración. El valor predeterminado esfalse
.
El siguiente ejemplo de código convierte los archivos de la carpeta Applications
a archivos Oozie de origen.
Convert -treePath: 'ETL.APACHE_OOZIE.Applications' /
SaveOnS3
carga las definiciones de las máquinas de estado en el bucket de Amazon S3. Este comando utiliza el parámetro treePath
. Para ejecutar este comando, utilice la carpeta de destino con las definiciones de las máquinas de estado como valor de este parámetro.
A continuación, se carga la State machine definitions
carpeta del objeto de AWS_STEP_FUNCTIONS
destino en el bucket de Amazon S3. AWS SCT utiliza el bucket de Amazon S3 que guardó en el perfil de AWS servicio en el Requisitos previos paso.
SaveOnS3 -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machine definitions' /
El comando ConfigureStateMachine
configura las máquinas de estado. Este comando utiliza hasta seis parámetros. Para definir el alcance de los archivos que se van a analizar, utilice uno de los tres primeros parámetros de la siguiente lista.
filterName
: el nombre del filtro de los objetos de destino. Puede crear un filtro mediante el comandoCreateFilter
.treePath
: la ruta explícita a los objetos de destino.namePath
: la ruta explícita a un objeto de destino concreto.iamRole
— el nombre del recurso de Amazon (ARN) del IAM rol que proporciona acceso a tus máquinas de pasos. Este parámetro es obligatorio.
El siguiente ejemplo de código configura las máquinas de estado definidas AWS_STEP_FUNCTIONS
mediante el role_name
IAMrol.
ConfigureStateMachine -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machine definitions' -role: 'arn:aws:iam::555555555555:role/
role_name
' /
El comando ApplyToTarget
aplica el código convertido al servidor de destino. Para ejecutar este comando, utilice uno de los siguientes parámetros: filterName
, treePath
o namePath
para definir los objetos de destino que se van a aplicar.
El siguiente ejemplo de código aplica la máquina de app_wp
estados a AWS Step Functions.
ApplyToTarget -treePath: 'ETL.AWS_STEP_FUNCTIONS.State machines.app_wp' /
Utilice un paquete de extensión de AWS SCT para asegurarse de que el código convertido produce los mismos resultados que el código de origen. Se trata de un conjunto de AWS Lambda funciones que emulan las funciones de Apache Oozie que AWS Step Functions no son compatibles. Para instalar este paquete de extensión, puede usar el comando CreateLambdaExtPack
.
Este comando utiliza hasta cinco parámetros. Utilice Oozie2SF
para extPackId
. En este caso, AWS SCT crea un paquete de extensiones para las funciones fuente de Apache Oozie.
extPackId
: el identificador único de un conjunto de funciones de Lambda. Este parámetro es obligatorio.tempDirectory
— la ruta donde se AWS SCT pueden almacenar los archivos temporales. Este parámetro es obligatorio.awsProfile
— el nombre de tu AWS perfil.lambdaExecRoles
— la lista de nombres de recursos de Amazon (ARNs) de las funciones de ejecución que se van a utilizar para las funciones de Lambda.createInvokeRoleFlag
: el indicador booleano que indica si se debe crear un rol de ejecución para. AWS Step Functions
Para instalar y usar el paquete de extensión, proporcione los permisos necesarios. Para obtener más información, consulte Permisos para usar AWS Lambda las funciones del paquete de extensiones.
Para obtener más información sobre los CreateLambdaExtPack
comandos Convert
SaveOnS3
,ConfigureStateMachine
,ApplyToTarget
, y, consulte la AWS Schema Conversion Tool CLIReferencia
Ejecutando el CLI script
Cuando termine de editar el AWS SCT CLI script, guárdelo como un archivo con la .scts
extensión. Ahora, puede ejecutar el script desde la app
carpeta de la ruta de AWS SCT instalación. Para ello, utilice el siguiente comando.
RunSCTBatch.cmd --pathtoscts "C:\
script_path
\oozie.scts"
En el ejemplo anterior, sustituya script_path
por la ruta del archivo con el CLI script. Para obtener más información sobre la ejecución de CLI scripts en AWS SCT, consulteModo script.
Nodos de Apache Oozie que AWS SCT se pueden convertir en AWS Step Functions
Puede utilizarlos AWS SCT para convertir los nodos de acción y los nodos de flujo de control de Apache Oozie en. AWS Step Functions
Entre los nodos de acción compatibles se incluyen:
Acción de Hive
Acción de Hive2
Acción de Spark
MapReduce Acción de streaming
Acción de Java
DistCp acción
Acción de Pig
Acción de Sqoop
Acción de FS
Acción de Shell
Entre los nodos de control de flujo compatibles se incluyen:
Acción Start
Acción End
Acción Kill
Acción Decision
Acción Fork
Acción Join