Los nodos de EMR Spark Streaming ofrecen procesamiento de alto rendimiento y tolerante a fallos para flujos de datos en tiempo real, lo que facilita la recuperación rápida ante errores en dichos flujos. Puede crear un nodo de EMR Spark Streaming y desarrollar una tarea de streaming en DataWorks.
Requisitos previos
Se creó un clúster de Alibaba Cloud EMR y se registró en DataWorks. Para obtener más información, consulte Data Studio (legacy): Register an EMR cluster.
(Obligatorio si utiliza un usuario de RAM para desarrollar tareas) El usuario de RAM se agregó al espacio de trabajo de DataWorks como miembro y se le asignó el rol Develop o Workspace Administrator. El rol Workspace Administrator otorga más permisos de los necesarios, por lo que debe tener precaución al asignarlo. Para obtener más información sobre cómo agregar un miembro, consulte Add members to a workspace.
Se adquirió y configuró un resource group serverless. La configuración incluye la asociación con un espacio de trabajo y la configuración de red. Para obtener más información, consulte Create and use a serverless resource group.
-
Se creó un flujo de trabajo en DataStudio.
Las operaciones de desarrollo en los distintos tipos de motores de cómputo se realizan mediante flujos de trabajo en DataStudio. Por lo tanto, antes de crear un nodo, debe crear un flujo de trabajo. Para obtener más información, consulte Create a workflow.
Límites
Este tipo de tarea solo puede ejecutarse en un serverless resource group (recomendado) o en un resource group exclusivo para programación.
No es posible utilizar nodos de EMR Spark Streaming para desarrollar tareas en clústeres de Spark que se ejecutan en EMR on ACK.
Paso 1: Crear un nodo de EMR Spark Streaming
-
Inicie sesión en la consola de DataWorks. En la región objetivo, haga clic en en el panel de navegación izquierdo. Seleccione un espacio de trabajo en la lista desplegable y haga clic en Go to Data Development.
-
Cree un nodo de EMR Spark Streaming.
-
En el panel Business Flow, haga clic con el botón derecho en el flujo de trabajo objetivo y seleccione .
NotaComo alternativa, puede pasar el cursor sobre el icono Create y seleccionar .
-
En el cuadro de diálogo Create Node, introduzca un Name y seleccione la Engine Instance, el Node Type y la Path. Haga clic en Confirm para abrir la pestaña del editor correspondiente al nodo.
NotaLos nombres de los nodos pueden contener letras mayúsculas, letras minúsculas, caracteres chinos, dígitos, guiones bajos (_) y puntos (.).
-
Paso 2: Desarrollar la tarea de EMR Spark Streaming
Haga doble clic en el nodo que creó para abrir su pestaña de edición.
Crear y hacer referencia a un recurso JAR de EMR
Si utiliza un clúster DataLake, siga estos pasos para hacer referencia a un recurso JAR de EMR.
Si su nodo de EMR Spark Streaming depende de un recurso demasiado grande para cargarse desde la página de DataWorks, debe almacenar el recurso en HDFS y hacer referencia a él en su código. Ejemplo:
spark-submit --master yarn
--deploy-mode cluster
--name SparkPi
--driver-memory 4G
--driver-cores 1
--num-executors 5
--executor-memory 4G
--executor-cores 1
--class org.apache.spark.examples.JavaSparkPi
hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar 100
Cree un recurso JAR de EMR. Para obtener más información, consulte Create and use EMR resources. La primera vez que realice esta operación, debe hacer clic en Authorize.
-
Haga referencia al recurso JAR de EMR.
Abra el nodo EMR Spark Streaming que creó.
En el árbol de navegación, expanda , busque el recurso al que desea hacer referencia, haga clic con el botón derecho sobre él y seleccione Insert Resource Path.
-
Aparecerá una declaración de referencia similar a
##@resource_reference{""}en el editor. Reemplace los valores del marcador de posición en el siguiente ejemplo con su información real.##@resource_reference{"examples-1.2.0-shaded.jar"} --master yarn-cluster --executor-cores 2 --executor-memory 2g --driver-memory 1g --num-executors 2 --class com.aliyun.emr.example.spark.streaming.JavaLoghubWordCount examples-1.2.0-shaded.jar <logService-project> <logService-store> <group> <endpoint> <access-key-id> <access-key-secret>
Desarrollar el código de la tarea
En el editor del nodo de EMR Spark Streaming, introduzca el código del job que desea ejecutar. Ejemplo:
spark-submit --master yarn-cluster --executor-cores 2 --executor-memory 2g --driver-memory 1g --num-executors 2 --class com.aliyun.emr.example.spark.streaming.JavaLoghubWordCount examples-1.2.0-shaded.jar <logService-project> <logService-store> <group> <endpoint> <access-key-id> <access-key-secret>
En este ejemplo, el recurso cargado en DataWorks es
examples-1.2.0-shaded.jar.Reemplace
access-key-idyaccess-key-secretcon el AccessKey ID y el AccessKey secret de su cuenta de Alibaba Cloud. Para obtenerlos, inicie sesión en la consola de DataWorks, pase el cursor sobre su foto de perfil en la esquina superior derecha y vaya a la página de gestión de AccessKey.El editor de código de los nodos de EMR Spark Streaming no admite comentarios.
Si su espacio de trabajo está vinculado a varios recursos de cómputo de EMR, seleccione el adecuado para su tarea.
(Opcional) Configurar parámetros avanzados
Puede configurar propiedades específicas en la pestaña Advanced Settings del nodo. Para obtener más información sobre las propiedades disponibles, consulte Configuración de Spark. La siguiente tabla describe los parámetros avanzados.
Datalake: EMR on ECS
|
Parámetro |
Descripción |
|
queue |
La cola de YARN para el job. El valor predeterminado es default. Para obtener más información sobre YARN en EMR, consulte Basic queue configurations. |
|
priority |
La prioridad del job. El valor predeterminado es 1. |
|
Otros |
Puede agregar parámetros personalizados de SparkConf en la configuración avanzada. DataWorks añade automáticamente estos parámetros al comando al enviarlo. Ejemplo: Nota
Para habilitar el control de permisos de Ranger, agregue la configuración Para obtener más información sobre las configuraciones de parámetros, consulte Set global Spark parameters. |
Ejecutar la tarea
-
En la barra de herramientas, haga clic en el icono
. En el cuadro de diálogo Parameter, seleccione el resource group de programación que creó y haga clic en Running.NotaPara acceder a recursos de cómputo en una red pública o VPC, debe utilizar un resource group de programación que haya pasado una prueba de conectividad con el recurso de cómputo. Para obtener más información, consulte Network connectivity solutions.
Si necesita cambiar el resource group para ejecuciones posteriores, haga clic en el icono Run with Parameters
y seleccione el resource group que desea utilizar.
Haga clic en el icono
para guardar el código.-
(Opcional) Realice pruebas de humo.
Para realizar pruebas de humo en el entorno de desarrollo, ejecute la prueba antes o después de confirmar el nodo. Para obtener más información, consulte Perform smoke testing.
Paso 3: Configurar propiedades de programación
Si desea que el sistema ejecute periódicamente una tarea en el nodo, puede hacer clic en Properties en el panel de navegación derecho de la pestaña de configuración del nodo para establecer las propiedades de programación de la tarea según sus requisitos empresariales. Para obtener más información, consulte Overview.
Debe configurar los parámetros Rerun y Parent Nodes en la pestaña Properties antes de confirmar la tarea.
Paso 4: Desplegar la tarea
Una vez configurada una tarea en un nodo, debe confirmarla y desplegarla. Después de confirmar y desplegar la tarea, el sistema la ejecuta de forma regular según las configuraciones de programación.
Haga clic en el icono
en la barra de herramientas superior para guardar la tarea.-
Haga clic en el icono
en la barra de herramientas superior para confirmar la tarea.En el cuadro de diálogo Submit, configure el parámetro Change description. Luego, determine si desea revisar el código de la tarea después de confirmarla, según sus requisitos empresariales.
NotaDebe configurar los parámetros Rerun y Parent Nodes en la pestaña Properties antes de confirmar la tarea.
Puede utilizar la función de revisión de código para garantizar la calidad del código de las tareas y evitar errores de ejecución causados por código no válido. Si habilita esta función, el código de la tarea confirmado solo podrá desplegarse después de aprobar la revisión. Para obtener más información, consulte Code review.
Si utiliza un espacio de trabajo en modo estándar, debe desplegar la tarea en el entorno de producción después de confirmarla. Para desplegar una tarea en un nodo, haga clic en Deploy en la esquina superior derecha de la pestaña de configuración del nodo. Para obtener más información, consulte Deploy a node.
Más operaciones
Después de confirmar y desplegar la tarea, esta se ejecuta periódicamente según las configuraciones de programación. Puede hacer clic en Operation Center en la esquina superior derecha de la pestaña de configuración del nodo correspondiente para ir a Operation Center y consultar el estado de programación de la tarea. Para obtener más información, consulte Manage scheduled tasks.