O MaxCompute oferece interfaces de programação MapReduce. Crie e agende um nó MR do MaxCompute para usar a API Java do MapReduce na escrita de programas que processam grandes conjuntos de dados no MaxCompute.
Contexto
O MapReduce é um framework de computação distribuída. Ele combina o código de lógica de negócios escrito pelo usuário com componentes integrados para formar um programa distribuído completo, executado simultaneamente em um cluster Hadoop. O MaxCompute disponibiliza duas versões da interface de programação MapReduce. Para mais detalhes, consulte MapReduce.
MaxCompute MapReduce: API nativa do MaxCompute. Permite execução rápida e desenvolvimento ágil sem expor o sistema de arquivos.
MaxCompute MapReduce Estendido (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.
No DataWorks, use um nó MR do MaxCompute para agendar e executar tarefas MapReduce do MaxCompute e integrá-las a outros jobs.
Pré-requisitos
Você já vinculou um mecanismo de computação 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 obrigatórios antes de criar um nó MR do MaxCompute.
Limitações
Para detalhes sobre as limitações dos nós MR do MaxCompute, consulte 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 informações, consulte gerenciamento de recursos.
NotaPara entender 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 invocada 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, também criada no código anterior.Quando uma tarefa MR utiliza múltiplos 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, use um grupo de recursos de agendamento que tenha passado 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 MaxCompute criada 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 a tarefa do nó periodicamente, defina as configurações de agendamento conforme suas necessidades de negócio. Para mais detalhes, 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 detalhes, consulte Tarefas agendadas.
Referências
Para conhecer outros cenários de desenvolvimento de tarefas ODPS MR, consulte os tópicos a seguir:
Perguntas frequentes: Conheça os problemas comuns que podem ocorrer durante a execução de tarefas MR e aprenda a solucioná-los rapidamente. Para mais informações, consulte FAQ.