O Impala é um mecanismo de consulta SQL interativo para consultas rápidas e em tempo real em big data na escala de petabytes. Crie um nó EMR Impala no DataWorks para desenvolver e agendar tarefas SQL do Impala.
Pré-requisitos
Crie e registre um cluster 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 do que o necessário; tenha cautela ao atribuí-la. Para mais informações sobre como adicionar membros, consulte Add members to a workspace.
Adquira e configure um grupo de recursos serverless. As configurações incluem a associação a um workspace e a configuração de rede. Para mais informações, consulte Create and use a serverless resource group.
-
Crie um fluxo de trabalho no DataStudio.
As operações de desenvolvimento em diferentes tipos de mecanismos de computação baseiam-se em fluxos de trabalho no DataStudio. Portanto, crie um fluxo de trabalho antes de criar um nó. Para mais informações, consulte Create a workflow.
Limitações
Esse tipo de tarefa executa apenas em um serverless resource group (recomendado) ou em um grupo de recursos exclusivo para agendamento.
O EMR Impala executa apenas em recursos de computação do tipo legado cluster de data lake (Hadoop). O DataWorks não suporta mais a vinculação de novos clusters do tipo Hadoop, mas você pode continuar usando clusters Hadoop vinculados anteriormente.
Etapa 1: Criar um nó EMR Impala
-
Faça login no console do DataWorks. Na região de destino, 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 Impala.
-
Clique com o botão direito no fluxo de trabalho desejado e escolha .
NotaVocê também pode passar o mouse sobre Create e escolher .
-
Na caixa de diálogo Create Node, insira um Name e selecione a Engine Instance, o Node Type e o Path. Clique em OK para acessar a aba de configuração do nó EMR Impala.
NotaO nome do nó pode conter letras maiúsculas, minúsculas, dígitos, sublinhados (_) e pontos (.).
-
Etapa 2: Desenvolver a tarefa EMR Impala**
Na aba de configuração do nó EMR Impala, clique duas vezes no nó para abrir a aba de desenvolvimento da tarefa e execute as operações a seguir.
Desenvolver código SQL
Escreva o código SQL no editor. Defina variáveis no formato ${variable_name} e atribua valores a elas na seção Schedule Settings > Scheduling Parameter no painel de navegação à direita para passagem dinâmica de parâmetros. Para mais informações sobre os formatos suportados, consulte Formats of scheduling parameters. O código a seguir fornece um exemplo.
show tables; CREATE TABLE IF NOT EXISTS userinfo ( ip STRING COMMENT'IP address', uid STRING COMMENT'User ID' )PARTITIONED BY( dt STRING ); ALTER TABLE userinfo ADD IF NOT EXISTS PARTITION(dt='${bizdate}'); --Can be used with scheduling parameters. select * from userinfo ;
O tamanho máximo das instruções SQL não pode exceder 130 KB.
Se houver vários recursos de computação EMR associados no Data Studio do seu workspace, selecione o recurso apropriado conforme suas necessidades de negócio. Caso exista apenas um recurso de computação EMR associado, nenhuma seleção é necessária.
Para modificar valores de parâmetros no código, clique em Run with Parameters na barra de ferramentas. Para mais informações sobre a lógica de atribuição de parâmetros, consulte Parameter assignment logic.
(Opcional) Configurar parâmetros avançados
Configure os parâmetros de propriedade na seção Advanced Settings do nó. Para mais informações, consulte Configuração do Spark. Os parâmetros avançados disponíveis variam conforme o tipo de cluster EMR, conforme descrito nas tabelas a seguir.
Cluster DataLake/cluster personalizado: EMR on ECS
|
Parâmetro avançado |
Descrição |
|
FLOW_SKIP_SQL_ANALYZE |
Método de execução de 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 |
Aplicável a cenários de execução direta de testes no ambiente de desenvolvimento. Valores válidos:
Nota
Quando este parâmetro está definido como |
Cluster Hadoop: EMR on ECS
|
Parâmetro avançado |
Descrição |
|
FLOW_SKIP_SQL_ANALYZE |
Método de execução de instruções SQL. Valores válidos:
Nota
Este parâmetro tem suporte apenas para execuções de teste no ambiente de desenvolvimento. |
|
USE_GATEWAY |
Define se os jobs devem ser enviados por meio de um cluster Gateway para este nó. 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 |
Executar a tarefa SQL
-
Clique no ícone Run with Parameters
na barra de ferramentas. Na caixa de diálogo Parameter, selecione o grupo de recursos para agendamento criado e clique em Running.NotaPara acessar recursos de computação em uma rede pública ou VPC, utilize um grupo de recursos para agendamento aprovado no teste de conectividade com o recurso de computação. Para mais informações, consulte Network connectivity.
Caso precise alterar o grupo de recursos para execuções futuras da tarefa, clique no ícone Run with Parameters
e selecione o grupo de recursos para agendamento desejado.
Clique no ícone
para salvar as instruções SQL.-
(Opcional) Teste de fumaça.
Para realizar testes de fumaça no ambiente de desenvolvimento, execute-os antes ou depois de submeter o nó. Para mais informações, consulte Smoke testing.
(Opcional) Visualizar informações de linhagem
Para exibir a linhagem no nível de tabela e coluna para tarefas EMR Impala no Data Map, ative primeiro os logs de linhagem do Impala no cluster EMR. Este recurso tem suporte apenas para clusters EMR DataLake (metadados HMS e DLF são suportados). Para mais informações, consulte Configure Impala lineage.
Este recurso está atualmente em liberação gradual. Antes de utilizá-lo, abra um ticket ou entre em contato com o suporte técnico da Alibaba Cloud para ativá-lo.
Etapa 3: Configurar propriedades de agendamento
Para que o sistema execute 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 da tarefa conforme suas necessidades de negócio. Para mais informações, consulte Overview.
Configure os parâmetros Rerun e Parent Nodes na aba Properties antes de submeter a tarefa.
Etapa 4: Implantar a tarefa
Após configurar uma tarefa em um nó, submeta-a e implante-a. Em seguida, o sistema executa a tarefa regularmente com base nas configurações de agendamento.
Clique no ícone
na barra de ferramentas superior para salvar a tarefa.-
Clique no ícone
na barra de ferramentas superior para submeter a tarefa.Na caixa de diálogo Submit, configure o parâmetro Change description. Em seguida, decida se deseja revisar o código da tarefa após a submissão, conforme suas necessidades de negócio.
NotaConfigure os parâmetros Rerun e Parent Nodes na aba Properties antes de submeter a tarefa.
Utilize o recurso de revisão de código para garantir a qualidade do código das tarefas e evitar erros de execução causados por código inválido. Se você ativar a revisão de código, o código submetido só poderá ser implantado após aprovação. Para mais informações, consulte Code review.
Se você utiliza um workspace no modo padrão, implante a tarefa no ambiente de produção após submetê-la. Para implantar uma tarefa em um nó, clique em Deploy no canto superior direito da aba de configuração do nó. Para mais informações, consulte Deploy a node.
Mais operações
Depois de submeter e implantar a tarefa, ela será executada periodicamente conforme as configurações de 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 da tarefa. Para mais informações, consulte Manage scheduled tasks.
Perguntas frequentes
-
P: Ocorre o erro "Impala JDBC Url is Empty"?
>>> [ERROR][LauncherFactory]: JobLauncher init Failed! java.lang.RuntimeException: Impala JDBC Url is Empty! at com.aliyun.emr.dataworks.dcc.launcher.type.ImpalaJobLauncher.initJdbcConnectionR: Certifique-se de que o service Impala foi adicionado ao cluster. O service Impala está disponível apenas para usuários existentes.
-
P: Ocorre um erro de tempo limite de conexão quando o nó é executado?
EMR execute task failed! FAILED: Build connection error! Could not open client transport with JDBC Uri: jdbc:hive2://<host>:21050/;auth=noSasl: java.net.ConnectException: Connection timed out (Connection timed out)R: Verifique se o grupo de recursos e o cluster possuem 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. Confirme se a inicialização foi bem-sucedida.