No DataWorks, utilize um nó do Lindorm Spark para desenvolver e agendar periodicamente tarefas do Lindorm Spark. Este tópico descreve o fluxo de trabalho para o desenvolvimento de tarefas em um nó do Lindorm Spark.
Informações básicas
O Lindorm é um service de computação distribuída baseado em arquitetura cloud native. Ele oferece suporte a modelos de computação da Community Edition, é compatível com APIs do Spark e possui integração profunda com o mecanismo de armazenamento do Lindorm. O service aproveita os recursos e as capacidades de indexação do armazenamento de dados subjacente para concluir jobs distribuídos com eficiência, sendo adequado para cenários como processamento massivo de dados, análise interativa, machine learning e computação em grafos.
Pré-requisitos
-
(Opcional, para usuários RAM) O usuário RAM responsável pelo desenvolvimento da tarefa foi adicionado ao workspace correspondente e recebeu a função Development ou Workspace Administrator. A função Workspace Administrator concede permissões amplas; portanto, atribua-a com cautela. Para mais informações, consulte Add members to a workspace.
Nota
Caso esteja utilizando uma conta Alibaba Cloud, ignore esta etapa.
Uma instância do Lindorm foi criada e vinculada ao seu workspace do DataWorks. Para mais informações, consulte Bind a Lindorm computing resource.
Desenvolver um nó do Lindorm Spark
Dependendo da linguagem (Java/Scala ou Python), configure o nó para referenciar o pacote JAR ou o arquivo .py correspondente.
Conteúdo do nó (Java/Scala)
Esta seção utiliza o programa de exemplo SparkPi para demonstrar como configurar e usar um nó do Lindorm Spark no DataWorks.
Carregar um pacote JAR
Faça o upload do pacote JAR de exemplo para o LindormDFS e copie seu caminho de armazenamento. Esse caminho será necessário posteriormente para configurar o nó.
-
Prepare o pacote JAR de exemplo.
Baixe o pacote spark-examples_2.12-3.3.0.jar de exemplo para o seu computador.
-
Carregue o pacote JAR no LindormDFS.
Faça login no console do Lindorm. Na lista Instances da região correspondente, localize a instância do Lindorm que você criou.
Clique em Name da instância para abrir a página Instance Details.
Na barra de navegação à esquerda, clique em Compute Engines para acessar a página Compute Engines.
Na aba Job Management, clique em Upload resources para abrir a página Upload resources.
Clique na caixa pontilhada, localize o pacote JAR baixado e clique em Open.
Clique em Upload para carregar o pacote JAR.
-
Copie o caminho de armazenamento do pacote JAR de exemplo.
Na aba Job Management, localize o pacote JAR carregado. Ele aparece abaixo do botão Upload Resource. Clique no ícone
à esquerda do nome do arquivo para copiar o caminho de armazenamento do pacote JAR no LindormDFS.
Configurar o conteúdo do nó
Configure o nó do Lindorm Spark com os seguintes parâmetros.
|
Linguagem
|
Parâmetro
|
Descrição
|
|
Java/Scala
|
Main JAR Resource
|
Insira o caminho de armazenamento do pacote JAR de exemplo copiado na etapa Upload a JAR package.
|
|
Main Class
|
Classe principal da tarefa no pacote JAR compilado. Para o código de exemplo, a classe principal é org.apache.spark.examples.SparkPi.
|
|
Parameter
|
Insira os parâmetros a serem passados para o código. É possível configurar um parâmetro dinâmico usando o formato ${var}.
|
|
Configuration Item
|
Configure os parâmetros de tempo de execução do Spark nesta seção. Para mais informações sobre as propriedades do Spark, consulte Job configuration instructions.
|
Conteúdo do nó (Python)
Esta seção utiliza um programa Spark de exemplo que calcula o valor de pi para demonstrar como configurar e usar um nó do Lindorm Spark no DataWorks.
Carregar um resource Python
Carregue o arquivo Python de exemplo no LindormDFS e copie seu caminho de armazenamento. Esse caminho será necessário posteriormente para configurar o nó.
-
Crie um arquivo Python.
Salve o script Python a seguir como um arquivo local chamado 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()
-
Carregue o arquivo Python no LindormDFS.
Faça login no console do Lindorm. Na lista Instances da região correspondente, localize a instância do Lindorm que você criou.
Clique em Name da instância para abrir a página Instance Details.
Na barra de navegação à esquerda, clique em Compute Engines para acessar a página Compute Engines.
Na aba Job Management, clique em Upload resources para abrir a página Upload resources.
Clique na caixa pontilhada, localize o arquivo Python criado e clique em Open.
Clique em Upload para carregar o arquivo Python.
-
Copie o caminho de armazenamento do arquivo Python de exemplo.
Na aba Job Management, localize o arquivo Python carregado. Ele aparece abaixo do botão Upload Resource. Clique no ícone
à esquerda do nome do arquivo para copiar o caminho de armazenamento do arquivo Python no LindormDFS.
Configurar o conteúdo do nó
Configure o nó do Lindorm Spark com os seguintes parâmetros.
|
Linguagem
|
Parâmetro
|
Descrição
|
|
Python
|
Main Package
|
Insira o caminho de armazenamento do arquivo Python de exemplo copiado na etapa Upload a Python resource.
|
|
Parameter
|
Insira os parâmetros a serem passados para o código. É possível configurar um parâmetro dinâmico usando o formato ${var}.
|
|
Configuration Item
|
Configure os parâmetros de tempo de execução do Spark nesta seção. Para mais informações sobre as propriedades do Spark, consulte Job configuration instructions.
|
Depurar o nó do Lindorm Spark
-
Configure as propriedades de depuração.
No painel Run Configuration à direita, configure o Compute Resource, o Lindorm Resource Group e o Resource Group. A tabela a seguir descreve esses parâmetros.
|
Parâmetro
|
Descrição
|
|
Compute Resource
|
Selecione o recurso de computação do Lindorm vinculado ao seu workspace.
|
|
Lindorm Resource Group
|
Escolha o grupo de recursos do Lindorm especificado durante a vinculação do recurso de computação do Lindorm.
|
|
Resource Group
|
Selecione o grupo de recursos que passou no teste de conectividade ao vincular o recurso de computação do Lindorm Spark.
|
|
Script Parameters
|
Caso tenha definido parâmetros dinâmicos no formato ${ParameterName}, especifique os Script Parameters e o Parameter name correspondentes na seção Parameter Value. Durante a execução da tarefa, as variáveis são substituídas dinamicamente pelos valores reais. Para mais informações, consulte Sources and expressions of scheduling parameters.
|
-
Depure e execute o nó.
Para executar o nó, clique em Save e depois em Run.
Próximas etapas
Configure scheduling for a node: Para executar um nó em um agendamento periódico, acesse o painel Scheduling Settings para definir a Scheduling Policy e configurar as propriedades relacionadas.
Deploy a node: Para executar a tarefa no ambiente de produção, clique em
para fazer o deploy. Um nó só é agendado periodicamente após o deploy no ambiente de produção.
Data Map (Lindorm table data): Utilize o Data Map para coletar metadados do Lindorm.