Los nodos EMR Spark Streaming procesan datos de streaming en tiempo real con un alto rendimiento. Además, cuentan con tolerancia a fallos integrada para recuperar flujos de datos con errores.
Requisitos previos
Cree un clúster de Alibaba Cloud EMR y regístrelo en DataWorks. Para obtener más información, consulte New Data Studio: Attach an EMR compute resource.
-
(Opcional, para usuarios de RAM) Agregue el usuario de Resource Access Management (RAM) que usará para desarrollar tareas al espacio de trabajo. Asígnele el rol Development o Workspace Administrator (este último incluye permisos amplios, por lo que debe otorgarse con precaución). Para obtener más información, consulte Add workspace members.
Si utiliza una cuenta raíz, omita este paso.
Limitaciones
Este tipo de tarea solo se ejecuta en un serverless resource group (recomendado) o en un resource group exclusivo para programación.
No es posible usar nodos EMR Spark Streaming para desarrollar tareas en clústeres de Spark que se ejecutan en EMR on ACK.
Este nodo no se puede utilizar dentro de un flujo de trabajo. Solo se desarrolla y ejecuta como un nodo independiente.
Procedimiento
-
En la página del editor de nodos EMR Spark Streaming, siga estos pasos.
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.
NotaSi un recurso obligatorio es demasiado grande para cargarse desde la página de DataWorks, almacene dicho recurso en HDFS y haga referencia a él en su código. Por 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 Resource Management. Almacene el paquete JAR generado en el directorio
emr/jars. Haga clic en Click Upload para cargar el recurso JAR.Seleccione una Storage Path, las Data Sources y el Resource Group.
Haga clic en Save.
-
Haga referencia al recurso JAR de EMR.
Abra el nodo EMR Spark Streaming que creó y permanezca en la página del editor de código.
En el panel de navegación izquierdo, busque el recurso al que desea hacer referencia dentro de Resource Management. Haga clic derecho sobre el recurso y seleccione Insert Resource Path.
-
Una vez agregada la referencia, aparece un mensaje de confirmación en la página del editor de código del nodo EMR Spark Streaming. A continuación, ejecute el siguiente comando. El paquete de recursos, el nombre del bucket y la información de ruta que aparecen en el comando son ejemplos; sustitúyalos por sus propios valores.
##@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
Introduzca el código de su tarea en el editor de código del nodo EMR Spark Streaming. 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>NotaEn este ejemplo, el recurso que se carga en DataWorks es
examples-1.2.0-shaded.jar.Sustituya
access-key-idyaccess-key-secretpor 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 de la barra de navegación superior y seleccione AccessKey Management.El editor de código de los nodos EMR Spark Streaming no admite comentarios.
(Opcional) Configurar parámetros avanzados
En el panel Scheduling Settings, ubicado en el lado derecho de la página del nodo, configure los siguientes parámetros en .
NotaLos parámetros avanzados disponibles varían según el tipo de clúster de EMR, tal como se muestra en la siguiente tabla.
También puede configurar más propiedades de Spark de código abierto en el panel Scheduling Settings, dentro de .
DataLake: EMR on ECS
Parámetro
Descripción
FLOW_SKIP_SQL_ANALYZE
Modo de ejecución de las instrucciones SQL. Valores válidos:
-
true: ejecuta varias instrucciones SQL al mismo tiempo. -
false(predeterminado): ejecuta una instrucción SQL a la vez.
NotaEste parámetro solo es compatible con ejecuciones de prueba en el entorno de desarrollo de datos.
queue
Cola de envío de la tarea. La cola predeterminada es default. Para obtener más información sobre EMR YARN, consulte Basic queue configuration.
priority
Prioridad de la tarea. El valor predeterminado es 1.
Other
Agregue parámetros personalizados de SparkConf en la configuración avanzada. DataWorks los añade automáticamente al comando durante el envío. Ejemplo:
"spark.driver.memory" : "2g".NotaPara habilitar el control de acceso de Ranger, agregue la configuración
spark.hadoop.fs.oss.authorization.method=rangeren Set global Spark parameters.Para obtener más información sobre la configuración de parámetros, consulte Set global Spark parameters.
Ejecutar la tarea
-
En Run Configuration, dentro de Compute Resource, seleccione el Compute Resource y el DataWorks Resource Group.
NotaTambién puede configurar las CUs for Scheduling según los requisitos de recursos de la tarea. El valor predeterminado es
0.25.Para acceder a un origen de datos a través de internet público o en una VPC, debe usar un resource group de programación que pueda conectarse a dicho origen. Para obtener más información, consulte Network connectivity solutions.
En el cuadro de diálogo de parámetros de la barra de herramientas, seleccione el origen de datos que creó y haga clic en Run para ejecutar la tarea.
-
Si desea ejecutar el nodo como una tarea programada, configure sus propiedades de programación según sea necesario. Para obtener más información, consulte Configure node scheduling.
Una vez configurada la tarea del nodo, debe publicarla. Para obtener más información, consulte Publish a node or workflow.
Después de publicar la tarea, consulte el estado de las tareas programadas en Operation Center. Para obtener más información, consulte Get started with Operation Center.