Os nós EMR Spark Streaming processam dados de streaming em tempo real com alto throughput e incluem tolerância a falhas integrada para recuperar fluxos de dados com erro.
Pré-requisitos
Crie um cluster Alibaba Cloud EMR e registre-o no DataWorks. Para mais informações, consulte New Data Studio: Attach an EMR compute resource.
-
(Opcional, para usuários RAM) Adicione o usuário do Resource Access Management (RAM) responsável pelo desenvolvimento de tarefas ao workspace e atribua a ele a função Development ou Workspace Administrator (esta função inclui permissões amplas; conceda-a com cautela). Para mais informações, consulte Add workspace members.
Se você estiver usando uma conta root, pule esta etapa.
Limitações
Este tipo de tarefa executa apenas em um serverless resource group (recomendado) ou em um grupo de recursos exclusivo para agendamento.
Não é possível usar nós EMR Spark Streaming para desenvolver tarefas em clusters Spark executados no EMR on ACK.
Este nó não é compatível com workflows. Desenvolva e execute-o apenas como um nó independente.
Procedimento
-
Na página do editor de nós EMR Spark Streaming, execute as etapas a seguir.
Criar e referenciar um recurso EMR JAR
Se você utilizar um cluster DataLake, siga estas etapas para referenciar um recurso EMR JAR.
NotaSe um recurso necessário for muito grande para upload pela página do 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 Resource Management. Armazene o pacote JAR gerado no diretório
emr/jars. Clique em Click Upload para fazer o upload do recurso JAR.Selecione um Storage Path, Data Sources e Resource Group.
Clique em Save.
-
Referencie o recurso EMR JAR.
Abra o nó EMR Spark Streaming criado e permaneça na página do editor de código.
No painel de navegação à esquerda, localize o recurso desejado em Resource Management. Clique com o botão direito no recurso e selecione Insert Resource Path.
-
Após adicionar a referência, uma mensagem de sucesso aparecerá na página do editor de código do nó EMR Spark Streaming. Em seguida, execute o comando abaixo. O pacote de recursos, o nome do bucket e as informações de caminho no comando a seguir são exemplos. Substitua-os pelos seus 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>
Desenvolver código
Insira o código da tarefa no editor de código do nó EMR Spark Streaming. 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>NotaNeste exemplo, o recurso enviado ao DataWorks é
examples-1.2.0-shaded.jar.Substitua
access-key-ideaccess-key-secretpelo AccessKey ID e AccessKey Secret da sua conta Alibaba Cloud. Para obter essas credenciais, faça login no console do DataWorks, passe o mouse sobre sua foto de perfil no canto superior direito da barra de navegação superior e selecione AccessKey Management.O editor de código dos nós EMR Spark Streaming não aceita comentários.
(Opcional) Configurar parâmetros avançados
No painel Scheduling Settings, no lado direito da página do nó, configure os seguintes parâmetros em .
NotaOs parâmetros avançados disponíveis variam conforme o tipo de cluster EMR, como mostra a tabela a seguir.
Também é possível configurar outras propriedades open-source do Spark no painel Scheduling Settings, em .
DataLake: EMR on ECS
Parâmetro
Descrição
FLOW_SKIP_SQL_ANALYZE
Modo de execução de instruções SQL. Valores válidos:
-
true: Executa várias instruções SQL simultaneamente. -
false(padrão): Executa uma instrução SQL por vez.
NotaEste parâmetro tem suporte apenas para execuções de teste no ambiente de desenvolvimento de dados.
queue
Fila de envio da tarefa. A fila padrão é default. Para mais informações sobre o EMR YARN, consulte Basic queue configuration.
priority
Prioridade da tarefa. O valor padrão é 1.
Outros
Adicione parâmetros SparkConf personalizados na configuração avançada. O DataWorks os anexa automaticamente ao comando durante o envio. Exemplo:
"spark.driver.memory" : "2g".NotaPara ativar o controle de acesso do Ranger, adicione a configuração
spark.hadoop.fs.oss.authorization.method=rangerem Set global Spark parameters.Para mais informações sobre configurações de parâmetros, consulte Set global Spark parameters.
Executar a tarefa
-
Em Run Configuration, dentro de Compute Resource, selecione o Compute Resource e o DataWorks Resource Group.
NotaTambém é possível configurar as CUs for Scheduling conforme os requisitos de recursos da tarefa. O valor padrão é
0.25.Para acessar uma fonte de dados pela internet pública ou em uma VPC, use um grupo de recursos de agendamento com conectividade à fonte de dados. Para mais informações, consulte Network connectivity solutions.
Na caixa de diálogo de parâmetros da barra de ferramentas, selecione a fonte de dados criada e clique em Run para executar a tarefa.
-
Para executar o nó como uma tarefa agendada, configure suas propriedades de agendamento conforme necessário. Para mais informações, consulte Configure node scheduling.
Após configurar a tarefa do nó, publique-a. Para mais informações, consulte Publish a node or workflow.
Depois de publicar a tarefa, visualize o status das tarefas agendadas no Operation Center. Para mais informações, consulte Get started with Operation Center.