Crie e agende nós MR do MaxCompute para executar programas MapReduce que processam grandes conjuntos de dados no MaxCompute por meio da API Java do MapReduce.
Contexto
O MapReduce é um framework de computação distribuída que combina lógica de negócios personalizada com componentes integrados para formar um programa distribuído executado simultaneamente em um cluster Hadoop. O MaxCompute oferece duas versões da interface de programação MapReduce. Para mais informações, consulte MapReduce.
MaxCompute MapReduce: API nativa do MaxCompute. Permite execução rápida e desenvolvimento ágil sem expor o sistema de arquivos.
Extended MaxCompute MapReduce (MR2): Extensão do MaxCompute MapReduce com suporte a lógicas mais complexas de agendamento de jobs. Utiliza a mesma implementação da API nativa do MaxCompute.
Os nós MR do MaxCompute no DataWorks permitem agendar e executar tarefas MapReduce, além de integrá-las a outros jobs.
Pré-requisitos
Você vinculou um mecanismo de computação do MaxCompute ao workspace do DataWorks.
Os recursos necessários foram carregados e implantados. Para mais informações, consulte Gerenciamento de recursos.
Carregue e implante os recursos necessários antes de criar um nó MR do MaxCompute.
Limitações
Para consultar as limitações dos nós MR do MaxCompute, veja Limitações.
Procedimento
-
Na página do editor de nós MR do MaxCompute, siga as etapas de desenvolvimento abaixo.
Desenvolver o código MR
O exemplo a seguir demonstra como usar um nó MR do MaxCompute para
contar as ocorrências de cada string na tabela wc_in e gravar os resultados na tabela wc_out.-
Carregue, envie e implante o recurso mapreduce-examples.jar. Para mais detalhes, consulte Gerenciamento de recursos.
NotaPara obter informações sobre a lógica de implementação no pacote
mapreduce-examples.jar, consulte Exemplo WordCount. -
No editor de nós MR do MaxCompute, insira o código de exemplo a seguir.
--Create the input table. CREATE TABLE IF NOT EXISTS wc_in (key STRING, VALUE STRING); --Create the output table. CREATE TABLE IF NOT EXISTS wc_out (key STRING, cnt BIGINT); ---Create the system dual table. DROP TABLE IF EXISTS dual; CREATE TABLE dual(id BIGINT); --If the workspace does not have this pseudo table, you need to create it and initialize the data. ---Initialize data for the system pseudo table. INSERT OVERWRITE TABLE dual SELECT count(*) FROM dual; ---Insert sample data into the input table wc_in. INSERT OVERWRITE TABLE wc_in SELECT * FROM ( SELECT 'project','val_pro' FROM dual UNION ALL SELECT 'problem','val_pro' FROM dual UNION ALL SELECT 'package','val_a' FROM dual UNION ALL SELECT 'pad','val_a' FROM dual ) b; -- Reference the JAR resource that was just uploaded. You can find the resource in the resource management panel, right-click to reference it. --@resource_reference{"mapreduce-examples.jar"} jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_outNotaDescrição do código:
--@resource_reference: Clique com o botão direito no nome de um recurso na seção de gerenciamento de recursos e selecione Insert Resource Path para gerar essa instrução automaticamente.-resources: Nome do arquivo de recurso JAR referenciado.-classpath: Caminho do pacote JAR. Como o recurso já foi referenciado, o caminho é definido uniformemente para o pacote JAR em./.com.aliyun.odps.mapred.open.example.WordCount: Classe principal chamada durante a execução. Este valor deve corresponder exatamente ao nome da classe principal no pacote JAR.wc_in: Nome da tabela de entrada do MR, criada no código anterior.wc_out: Nome da tabela de saída do MR, criada no código anterior.Se uma tarefa MR chamar vários recursos JAR, especifique o classpath no seguinte formato:
-classpath ./xxxx1.jar,./xxxx2.jar. Separe os caminhos por vírgulas (,).
Executar a tarefa MR
-
Em Run Configuration, configure Compute Resource, Compute Quota e Resource Group.
NotaPara acessar fontes de dados em ambientes de rede pública ou VPC, utilize um grupo de recursos de agendamento aprovado no teste de conectividade com a fonte de dados. Para mais informações, consulte Conectividade de rede.
Na caixa de diálogo de parâmetros da barra de ferramentas, selecione a fonte de dados do MaxCompute criada anteriormente e clique em Run para executar a tarefa MR.
(Opcional) Consultar os resultados
Consulte os dados na tabela de saída
wc_outusando um nó SQL do MaxCompute.SELECT * FROM wc_out;Resultado:
+------------+------------+ | key | cnt | +------------+------------+ | package | 1 | | pad | 1 | | problem | 1 | | project | 1 | | val_a | 2 | | val_pro | 2 | +------------+------------+ -
Para executar periodicamente a tarefa do nó, defina as configurações de agendamento conforme seus requisitos de negócios. Para mais informações, consulte Configurações de agendamento.
Após configurar a tarefa do nó, implante-o. Para mais informações, consulte Implantar um nó.
Depois de implantar a tarefa, visualize o status de execução da tarefa agendada no Operation Center. Para mais informações, consulte Tarefas agendadas.
Referências
Para mais cenários de desenvolvimento de tarefas ODPS MR, consulte os seguintes tópicos:
Para problemas comuns durante a execução de tarefas MR e soluções de solução de problemas, consulte FAQ.