O nó E-MapReduce (EMR) Hive no DataWorks oferece suporte à análise em lote de dados em grande escala armazenados em sistemas distribuídos. Esse nó simplifica o processamento de big data e aumenta a eficiência do desenvolvimento. Em um nó EMR Hive, use instruções semelhantes a SQL para ler, gravar e gerenciar grandes conjuntos de dados. Assim, você analisa com eficiência volumes massivos de logs e conclui as tarefas de desenvolvimento.
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 e deve ser concedida com cautela). Para mais informações, consulte Add workspace members.
Se você estiver usando uma conta root, pule esta etapa.
Configure uma fonte de dados Hive no DataWorks e garanta que ela seja aprovada no teste de conectividade. Para mais informações, consulte Data Source Management.
Limites
Esse tipo de tarefa só pode ser executado em Serverless resource groups (recomendado) ou em grupos de recursos exclusivos para agendamento.
-
Para gerenciar metadados de clusters DataLake ou personalizados no DataWorks, configure primeiro o EMR-HOOK no cluster. Para mais detalhes sobre como configurar o EMR-HOOK, consulte Configure EMR-HOOK for Hive.
NotaSem a configuração do EMR-HOOK no cluster, o DataWorks não consegue exibir metadados em tempo real, gerar logs de auditoria, mostrar linhagem de dados ou executar tarefas administrativas relacionadas ao EMR.
Etapa 1: Desenvolver um nó EMR Hive
Desenvolva o nó na página de edição do nó EMR Hive.
Desenvolver código SQL
Escreva o código da sua tarefa na área de edição SQL. Defina variáveis no código usando o formato ${variable_name} e atribua um valor a cada variável na seção Scheduling Parameters, dentro de Scheduling Settings, no lado direito da página de edição do nó. Isso permite passar parâmetros dinamicamente para o código em cenários de agendamento. Para mais informações sobre parâmetros de agendamento, consulte Source and Expressions of Scheduling Parameters. Veja um exemplo abaixo.
SHOW TABLES ;
SELECT '${var}'; --Use with scheduling parameters.
SELECT * FROM userinfo ;
O tamanho máximo de uma instrução SQL é de 130 KB.
Etapa 2: Configurar o nó EMR Hive
(Opcional) Configurar parâmetros avançados
Configure os parâmetros de propriedade listados na tabela a seguir na seção Scheduling Settings, localizada no lado direito do nó, em .
Os parâmetros avançados disponíveis variam conforme o tipo de cluster EMR, como mostram as tabelas a seguir.
Também é possível configurar mais propriedades open-source do Spark na seção Scheduling Settings, no lado direito do nó, em .
Cluster DataLake/Cluster personalizado: EMR on ECS
|
Parâmetro avançado |
Descrição |
|
queue |
Fila de agendamento onde o job será submetido. A fila padrão é |
|
priority |
Define a prioridade. O valor padrão é 1. |
|
FLOW_SKIP_SQL_ANALYZE |
Modo de execução das instruções SQL. Valores válidos:
Nota
Este parâmetro tem suporte apenas para execuções de teste no ambiente de desenvolvimento. |
|
DATAWORKS_SESSION_DISABLE |
Aplica-se a cenários de execução de teste no ambiente de desenvolvimento. Valores válidos:
Nota
Se este parâmetro estiver definido como |
|
Outros |
Também é possível anexar parâmetros de conexão Hive personalizados na seção de configuração avançada. |
Cluster Hadoop: EMR on ECS
|
Parâmetro avançado |
Descrição |
|
queue |
Fila de agendamento onde o job será submetido. A fila padrão é |
|
priority |
Define a prioridade. O valor padrão é 1. |
|
FLOW_SKIP_SQL_ANALYZE |
Modo de execução das instruções SQL. Valores válidos:
Nota
Este parâmetro tem suporte apenas para execuções de teste no ambiente de desenvolvimento. |
|
USE_GATEWAY |
Determina se o job deste nó deve ser submetido por meio de um cluster gateway. Valores válidos:
Nota
Se o cluster onde este nó reside não estiver associado a um cluster gateway e você definir manualmente este parâmetro como |
Para executar a tarefa do nodo em um cronograma, configure suas propriedades de agendamento. Para mais informações, consulte Node scheduling configuration.
Etapa 3: Executar e depurar o nó
Executar a tarefa SQL
-
Em Run Configuration, dentro de Compute Resource, configure Compute Resource e Resource Group.
NotaDefina também CUs for Scheduling de acordo com os recursos necessários para a execução da tarefa. O padrão é
0.25.Para acessar fontes de dados na internet pública ou em uma VPC, utilize um grupo de recursos de agendamento aprovado no teste de conectividade para essa 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 Hive criada e clique em Run para executar a tarefa SQL.
NotaAo consultar dados em um nó EMR Hive, a consulta fica limitada a
10000registros e a um volume total de dados de10 MB. Salve a tarefa do nó clicando em Save.
Próximos passos
Após configurar o nó, publique-o. Para mais informações, consulte Publish nodes or workflows.
Depois que a tarefa for publicada, visualize o status da tarefa acionada automaticamente no Operation Center. Para mais informações, consulte Get started with Operation Center.
Perguntas frequentes
P: Por que ocorre um tempo limite de conexão (ConnectException) ao executar um nó?
EMR execute task failed!
SQL: {"name":"dw20251018","type":"HIVE_SQL","launcher":{"allocationSpec":{}},"properties":{"envs":{"FLOW_SKIP_SQL_ANALYZE":false},"arguments":["select * from default.dim_customers"],"tags":[],"description":"DataWorks"}}
TASK-MESSAGE:
FAILED: Build connection error! Could not open client transport with JDBC Uri: jdbc:hive2://xxx:10000: java.net.ConnectException: Connection timed out
R: Garanta que o grupo de recursos e o cluster tenham conectividade de rede entre si. Acesse a lista de recursos de computação e clique em Resource Initialization. Na caixa de diálogo exibida, clique em Re-initialize. Verifique se a inicialização foi concluída com sucesso.