Crie um nó ODPS MR para escrever e agendar programas MapReduce que processam dados no MaxCompute por meio das APIs Java do MapReduce.
Pré-requisitos
Carregue, envie e publique os recursos necessários. Para mais informações, consulte Crie e use recursos do MaxCompute.
Crie um nó ODPS MR. Para mais informações, consulte Crie e gerencie nós do MaxCompute.
Carregue, envie e publique os recursos necessários antes de criar um nó ODPS MR.
Contexto
O MapReduce é um framework de programação distribuída que combina lógica de negócios personalizada com componentes integrados para execução simultânea em um cluster Hadoop. O MaxCompute oferece duas versões da interface de programação MapReduce. Para mais informações, consulte MapReduce.
MaxCompute MapReduce: interface nativa do MaxCompute. Oferece 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. A implementação é idêntica à da interface nativa.
No DataWorks, use um nó ODPS MR para agendar e executar tarefas MapReduce do MaxCompute e integrá-las a outros jobs.
Limitações
Para verificar as limitações dos nós ODPS MR, consulte Limites de uso.
Exemplo: job simples de WordCount
Este exemplo usa um nó ODPS MR para contar as ocorrências de cada string na tabela wc_in e gravar os resultados na tabela wc_out.
-
Carregue, envie e publique o recurso mapreduce-examples.jar. Para mais informações, consulte Crie e use recursos do MaxCompute.
NotaPara obter detalhes sobre a lógica de implementação no pacote mapreduce-examples.jar, consulte Exemplo de WordCount.
-
Insira o código a seguir no nó ODPS MR e execute-o.
-- 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 this pseudo-table does not exist in the workspace, you must create it and initialize data. --- Initialize the data in 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 you just uploaded. You can find this resource in the resource list, right-click the resource, and then select Reference Resources. --@resource_reference{"mapreduce-examples.jar"} jar -resources mapreduce-examples.jar -classpath ./mapreduce-examples.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_outO código inclui as seguintes instruções e parâmetros:
--@resource_reference: clique com o botão direito no nome de um recurso e selecione Insert Resource Path para gerar essa instrução automaticamente.-resources: nome do arquivo do recurso JAR referenciado.-classpath: caminho para o pacote JAR. Como o recurso já foi referenciado, o caminho aponta para o arquivo JAR no diretório atual (./).com.aliyun.odps.mapred.open.example.WordCount: nome totalmente qualificado da classe principal a ser executada a partir do arquivo JAR.wc_in: nome da tabela de entrada do job MapReduce. Essa tabela é criada no código anterior.wc_out: nome da tabela de saída do job MapReduce. Essa tabela é criada no código anterior.Se um job MapReduce exigir vários recursos JAR, separe os caminhos por vírgula. Exemplo:
-classpath ./xxxx1.jar,./xxxx2.jar.
Resultado: OK
-
Em um nó ODPS SQL, execute o comando a seguir para consultar os dados da tabela wc_out.
select * from wc_out;Saída esperada:
+------------+------------+ | key | cnt | +------------+------------+ | package | 1 | | pad | 1 | | problem | 1 | | project | 1 | | val_a | 2 | | val_pro | 2 | +------------+------------+
Exemplos avançados
Para outros cenários de desenvolvimento de tarefas MapReduce do MaxCompute, consulte os tópicos a seguir:
Próximas etapas
Após desenvolver um nó, execute as operações abaixo conforme necessário:
Configuração de agendamento: defina propriedades de agendamento periódico, como configurações de reexecução e dependências para tarefas regulares. Visão geral da configuração de agendamento de tarefas.
Depuração de tarefas: teste e execute o código do nó para validar sua lógica. Processo de depuração de tarefas.
Implantação de tarefas: implante os nós para executá-los periodicamente com base nas configurações de agendamento. Implantar tarefas.
Perguntas frequentes sobre MapReduce: problemas comuns e solução de problemas para tarefas MapReduce.