En DataWorks, puede utilizar un nodo Lindorm Spark para desarrollar y programar periódicamente tareas de Lindorm Spark. Este tema describe el flujo de trabajo para desarrollar tareas en un nodo Lindorm Spark.
Contexto
Lindorm es un servicio de cómputo distribuido basado en una arquitectura nativa de la nube. Admite modelos de cómputo Community Edition, es compatible con las API de Spark y está profundamente integrado con el motor de almacenamiento de Lindorm. Aprovecha las funciones y capacidades de indexación del almacenamiento de datos subyacente para completar trabajos distribuidos de manera eficiente, lo que lo hace adecuado para escenarios como procesamiento masivo de datos, análisis interactivo, aprendizaje automático y cómputo de grafos.
Requisitos previos
-
(Opcional, para usuarios de RAM) El usuario de RAM para el desarrollo de tareas se ha agregado al espacio de trabajo correspondiente y se le ha asignado el rol Development o Workspace Administrator. El rol Workspace Administrator otorga permisos amplios, así que asígnelo con precaución. Para obtener más información, consulte Add members to a workspace.
Nota
Si utiliza una cuenta de Alibaba Cloud, puede omitir este paso.
Se ha creado una instancia de Lindorm y se ha vinculado a su espacio de trabajo de DataWorks. Para obtener más información, consulte Bind a Lindorm computing resource.
Desarrollar un nodo Lindorm Spark
Dependiendo del lenguaje (Java/Scala o Python), puede configurar el nodo para hacer referencia al paquete JAR correspondiente o al archivo .py.
Contenido del nodo (Java/Scala)
Esta sección utiliza el programa de ejemplo SparkPi para demostrar cómo configurar y usar un nodo Lindorm Spark en DataWorks.
Cargar un paquete JAR
Cargue el paquete JAR de ejemplo en LindormDFS y copie su ruta de almacenamiento. Esta ruta es necesaria posteriormente para configurar el nodo.
-
Prepare el paquete JAR de ejemplo.
Descargue el paquete spark-examples_2.12-3.3.0.jar de ejemplo a su computadora.
-
Cargue el paquete JAR en LindormDFS.
Inicie sesión en la consola de Lindorm. En la lista Instances de la región correspondiente, busque la instancia de Lindorm que creó.
Haga clic en el Name de la instancia para abrir la página Instance Details.
En la barra de navegación izquierda, haga clic en Compute Engines para ir a la página Compute Engines.
En la pestaña Job Management, haga clic en Upload resources para abrir la página Upload resources.
Haga clic en el cuadro de línea punteada, busque el paquete JAR que descargó y luego haga clic en Open.
Haga clic en Upload para cargar el paquete JAR.
-
Copie la ruta de almacenamiento del paquete JAR de ejemplo.
En la pestaña Job Management, busque el paquete JAR que cargó. Aparece debajo del botón Upload Resource. Haga clic en el icono
a la izquierda del nombre del archivo para copiar la ruta de almacenamiento del paquete JAR en LindormDFS.
Configurar el contenido del nodo
Configure el nodo Lindorm Spark con los siguientes parámetros.
|
Lenguaje
|
Parámetro
|
Descripción
|
|
Java/Scala
|
Main JAR Resource
|
Introduzca la ruta de almacenamiento del paquete JAR de ejemplo que copió en el paso Upload a JAR package.
|
|
Main Class
|
La clase principal de la tarea en el paquete JAR compilado. Para el código de ejemplo, la clase principal es org.apache.spark.examples.SparkPi.
|
|
Parameter
|
Introduzca los parámetros que se pasarán al código. Puede configurar un parámetro dinámico mediante el formato ${var}.
|
|
Configuration Item
|
Configure los parámetros de ejecución de Spark en esta sección. Para obtener más información sobre las propiedades de Spark, consulte Job configuration instructions.
|
Contenido del nodo (Python)
Esta sección utiliza un programa de ejemplo de Spark que calcula pi para demostrar cómo configurar y usar un nodo Lindorm Spark en DataWorks.
Cargar un recurso de Python
Cargue el archivo de Python de ejemplo en LindormDFS y copie su ruta de almacenamiento. Esta ruta es necesaria posteriormente para configurar el nodo.
-
Cree un archivo de Python.
Guarde el siguiente script de Python como un archivo local llamado pi.py.
import sys
from random import random
from operator import add
from pyspark.sql import SparkSession
if __name__ == "__main__":
"""
Usage: pi [partitions]
"""
spark = SparkSession\
.builder\
.appName("PythonPi")\
.getOrCreate()
partitions = int(sys.argv[1]) if len(sys.argv) > 1 else 2
n = 100000 * partitions
def f(_: int) -> float:
x = random() * 2 - 1
y = random() * 2 - 1
return 1 if x ** 2 + y ** 2 <= 1 else 0
count = spark.sparkContext.parallelize(range(1, n + 1), partitions).map(f).reduce(add)
print("Pi is roughly %f" % (4.0 * count / n))
spark.stop()
-
Cargue el archivo de Python en LindormDFS.
Inicie sesión en la consola de Lindorm. En la lista Instances de la región correspondiente, busque la instancia de Lindorm que creó.
Haga clic en el Name de la instancia para abrir la página Instance Details.
En la barra de navegación izquierda, haga clic en Compute Engines para ir a la página Compute Engines.
En la pestaña Job Management, haga clic en el botón Upload resources para abrir la página Upload resources.
Haga clic en el cuadro de línea punteada, busque el archivo de Python que creó y luego haga clic en Open.
Haga clic en Upload para cargar el archivo de Python.
-
Copie la ruta de almacenamiento del archivo de Python de ejemplo.
En la pestaña Job Management, busque el archivo de Python que cargó. Aparece debajo del botón Upload Resource. Haga clic en el icono
a la izquierda del nombre del archivo para copiar la ruta de almacenamiento del archivo de Python en LindormDFS.
Configurar el contenido del nodo
Configure el nodo Lindorm Spark con los siguientes parámetros.
|
Lenguaje
|
Parámetro
|
Descripción
|
|
Python
|
Main Package
|
Introduzca la ruta de almacenamiento del archivo de Python de ejemplo que copió en el paso Upload a Python resource.
|
|
Parameter
|
Introduzca los parámetros que se pasarán al código. Puede configurar un parámetro dinámico mediante el formato ${var}.
|
|
Configuration Item
|
Puede configurar los parámetros de ejecución de Spark en esta sección. Para obtener más información sobre las propiedades de Spark, consulte Job configuration instructions.
|
Depurar el nodo Lindorm Spark
-
Configure las propiedades de depuración.
En el panel Run Configuration de la derecha, configure Compute Resource, Lindorm Resource Group y Resource Group. La siguiente tabla describe estos parámetros.
|
Parámetro
|
Descripción
|
|
Compute Resource
|
Seleccione el recurso de cómputo de Lindorm vinculado a su espacio de trabajo.
|
|
Lindorm Resource Group
|
Seleccione el resource group de Lindorm que especificó al vincular el recurso de cómputo de Lindorm.
|
|
Resource Group
|
Seleccione el resource group para el cual se superó la prueba de conectividad al vincular el recurso de cómputo de Lindorm Spark.
|
|
Script Parameters
|
Si define parámetros dinámicos en el formato ${ParameterName}, especifique los Script Parameters y el Parameter name correspondientes en la sección Parameter Value. Cuando se ejecuta la tarea, las variables se reemplazan dinámicamente por sus valores reales. Para obtener más información, consulte Sources and expressions of scheduling parameters.
|
-
Depure y ejecute el nodo.
Para ejecutar el nodo, haga clic en Save y luego en Run.
Siguientes pasos
Configure scheduling for a node: Para ejecutar un nodo en una programación periódica, vaya al panel Scheduling Settings para establecer la Scheduling Policy y configurar las propiedades relacionadas.
Deploy a node: Para ejecutar la tarea en el entorno de producción, haga clic en el icono
para desplegarla. Un nodo solo se programa periódicamente después de desplegarse en el entorno de producción.
Data Map (Lindorm table data): Utilice Data Map para recopilar metadatos de Lindorm.