Os nós EMR Spark Streaming processam fluxos de dados em tempo real com alto throughput e oferecem tolerância a falhas para permitir recuperação rápida de erros no fluxo. Este tópico descreve como criar um nó EMR Spark Streaming e desenvolver tarefas de dados.
Pré-requisitos
Crie e registre um cluster do Alibaba Cloud EMR no DataWorks. Para mais informações, consulte Data Studio (legacy): Register an EMR cluster.
(Obrigatório caso utilize um usuário RAM para desenvolver tarefas) Adicione o usuário RAM ao workspace do DataWorks como membro e atribua a função Develop ou Workspace Administrator. A função Workspace Administrator concede mais permissões que o necessário; tenha cautela ao atribuí-la. Para saber como adicionar membros, consulte Add members to a workspace.
Adquira e configure um grupo de recursos serverless. A configuração inclui associação a um workspace e definições de rede. Para mais informações, consulte Create and use a serverless resource group.
-
Crie um workflow no DataStudio.
O DataStudio baseia as operações de desenvolvimento em diferentes mecanismos de computação nos workflows. Portanto, crie um workflow antes de criar um nó. Para mais informações, consulte Create a workflow.
Limites
Esse tipo de tarefa executa apenas em um serverless resource group (recomendado) ou em um grupo de recursos exclusivo para agendamento.
Não é possível criar nós EMR Spark Streaming para desenvolvimento de tarefas em clusters EMR on ACK Spark.
Etapa 1: Criar um nó EMR Spark Streaming
-
Faça login no DataWorks console. Na região desejada, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
-
Crie um nó EMR Spark Streaming.
-
Clique com o botão direito no workflow desejado e escolha .
NotaAlternativamente, passe o mouse sobre Create e escolha .
-
Na caixa de diálogo Create Node, insira um Name, selecione uma engine instance, o Node Type e o Path. Clique em OK para abrir a página de configuração do nó EMR Spark Streaming.
NotaO nome do nó pode conter letras maiúsculas, minúsculas, caracteres chineses, dígitos, sublinhados (_) e pontos (.).
-
Etapa 2: Desenvolver uma tarefa EMR Spark Streaming
Na página de configuração do nó EMR Spark Streaming, clique duas vezes no nó criado para abrir a página de desenvolvimento da tarefa.
Criar e referenciar um recurso EMR JAR
Se utilizar um cluster DataLake, siga estas etapas para referenciar um recurso EMR JAR.
Caso um nó EMR Spark Streaming dependa de um recurso grande impossível de carregar no DataWorks, armazene-o no HDFS e referencie-o no código. Exemplo:
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
Crie um recurso EMR JAR. Para mais informações, consulte Create and use EMR resources. Ao usar esse recurso pela primeira vez, execute uma Authorize.
-
Referencie o recurso EMR JAR.
Abra o nó EMR Spark Streaming e acesse o editor de código.
No nó , localize o recurso desejado, clique com o botão direito nele e selecione Insert Resource Path.
-
Ao selecionar o recurso, uma instrução no formato
##@resource_reference{""}aparece no editor do nó para referenciá-lo. Em seguida, insira o comandospark-submit. O pacote de recursos, o nome do bucket e o caminho no comando servem apenas para demonstração; substitua-os pelos valores reais.##@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>
Desenvolver o código spark-submit
No editor do nó EMR Spark Streaming, insira o comando spark-submit do job. Exemplo:
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>
Neste exemplo, o recurso carregado no DataWorks é
examples-1.2.0-shaded.jar.Substitua
access-key-ideaccess-key-secretpelo AccessKey ID e AccessKey secret da sua conta Alibaba Cloud. Para obtê-los, faça login no DataWorks console, passe o mouse sobre a foto de perfil no canto superior direito e acesse a página de gerenciamento de AccessKey.Não há suporte para comentários durante a edição de código de um nó EMR Spark Streaming.
Se houver múltiplos recursos de computação EMR associados ao workspace no DataStudio, selecione aquele que atende aos requisitos de negócio. Caso exista apenas um recurso associado, nenhuma seleção é necessária.
(Opcional) Configurar Advanced Settings
Configure propriedades específicas na seção Advanced Settings do nó. Para mais detalhes, consulte Spark Configuration. A tabela a seguir descreve os parâmetros avançados disponíveis.
DataLake: EMR on ECS
Parâmetro | Descrição |
queue | Fila de agendamento do job. A fila padrão é default. Para mais informações sobre o EMR YARN, consulte Basic queue configurations. |
priority | Prioridade do job. O valor padrão é 1. |
Others | Adicione parâmetros SparkConf personalizados nesta seção. O DataWorks os anexa automaticamente ao comando ao enviar o código. Exemplo: Nota Para ativar o Ranger para controle de acesso, adicione a configuração Para mais informações sobre configuração de parâmetros, consulte Set global Spark parameters. |
Executar a tarefa
-
Na barra de ferramentas, clique no ícone
. Na caixa de diálogo Parameter, selecione o grupo de recursos de agendamento criado e clique em Running.NotaPara acessar recursos de computação via rede pública ou VPC, utilize um grupo de recursos de agendamento com conectividade a esses recursos. Para mais informações, consulte Network connectivity solutions.
Para alterar o grupo de recursos em execuções subsequentes, clique no ícone Run with Parameters
e selecione o grupo desejado.
Clique no ícone
para salvar o código.-
(Opcional) Execute testes de fumaça (smoke testing).
Para validar o ambiente de desenvolvimento, execute o teste de fumaça antes ou depois de fazer o commit do nó. Para mais informações, consulte Perform smoke testing.
Etapa 3: Configurar propriedades de agendamento
Para executar periodicamente uma tarefa no nó, clique em Properties no painel de navegação à direita, na aba de configuração do nó, e defina as propriedades de agendamento conforme os requisitos de negócio. Para mais informações, consulte Overview.
Configure obrigatoriamente os parâmetros Rerun e Parent Nodes na aba Properties antes de fazer o commit da tarefa.
Etapa 4: Implantar a tarefa
Após configurar a tarefa no nó, faça o commit e a implantação. O sistema executará a tarefa regularmente conforme as configurações de agendamento definidas.
Clique no ícone
na barra de ferramentas superior para salvar a tarefa.-
Clique no ícone
na barra de ferramentas superior para fazer o commit da tarefa.Na caixa de diálogo Submit, configure o parâmetro Change description. Em seguida, decida se deseja revisar o código após o commit, conforme os requisitos de negócio.
NotaConfigure obrigatoriamente os parâmetros Rerun e Parent Nodes na aba Properties antes de fazer o commit da tarefa.
Utilize a revisão de código para garantir a qualidade das tarefas e evitar erros de execução por código inválido. Se ativada, a implantação só ocorrerá após aprovação do código enviado. Para mais informações, consulte Code review.
Em workspaces no modo padrão, implante a tarefa no ambiente de produção após o commit. Para implantar, clique em Deploy no canto superior direito da aba de configuração do nó. Para mais informações, consulte Deploy nodes.
Mais operações
Após o commit e a implantação, a tarefa executa periodicamente conforme o agendamento. Clique em Operation Center no canto superior direito da aba de configuração do nó correspondente para acessar o Operation Center e visualizar o status de agendamento. Para mais informações, consulte Manage scheduled tasks.