Desenvolva um programa MapReduce WordCount no MaxCompute Studio, empacote-o como um arquivo JAR e execute o job no cliente do MaxCompute.
Pré-requisitos
Antes de começar, certifique-se de atender aos seguintes requisitos:
O cliente do MaxCompute está instalado e configurado. Para mais informações, consulte instale e configure o cliente do MaxCompute.
O MaxCompute Studio está instalado e conectado a um projeto do MaxCompute. Para mais informações, consulte instale o MaxCompute Studio e gerencie as conexões do projeto.
-
Você tem um arquivo source de dados salvo em sua máquina local.
Este tópico usa um arquivo de exemplo chamado data.txt que contém
hello,odps. O arquivo está salvo no diretóriobindo cliente do MaxCompute.
Notas de uso
Se você usar o Maven para desenvolver um programa MapReduce, pesquise por odps-sdk-mapred, odps-sdk-commons e odps-sdk-core no Repositório Central do Maven para obter a versão necessária do SDK Java. Este tópico usa a versão 0.36.4-public como exemplo. Adicione as seguintes dependências ao arquivo pom.xml.
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-mapred</artifactId>
<version>0.36.4-public</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-commons</artifactId>
<version>0.36.4-public</version>
</dependency>
<dependency>
<groupId>com.aliyun.odps</groupId>
<artifactId>odps-sdk-core</artifactId>
<version>0.36.4-public</version>
</dependency>
Procedimento
-
Step 1: Develop a MapReduce program
Escreva, execute e depure um programa MapReduce no MaxCompute Studio.
-
Step 2: Generate and upload a MapReduce JAR file
Empacote o script WordCount.java compilado em um arquivo JAR e faça o upload para o projeto do MaxCompute.
-
Etapa 3: execute o job do MapReduce
Execute o job MapReduce usando o comando
jarcom o arquivo JAR enviado para o projeto do MaxCompute.
Etapa 1: Desenvolver um programa MapReduce
-
Primeiro, crie um módulo Java do MaxCompute.
Inicie o IntelliJ IDEA. Na barra de menus, selecione .
No painel de navegação à esquerda da caixa de diálogo New Module, selecione MaxCompute Java.
Configure o Module SDK e clique em Next.
Agora, insira um Module name, como mapreduce, e clique em Finish.
-
Escreva, execute e depure o programa MapReduce WordCount.
No painel Project, clique com o botão direito no diretório de código source do módulo e selecione .
Na caixa de diálogo crie nova classe Java do MaxCompute, clique em Driver, insira um Name como WordCount e pressione Enter.
-
No arquivo WordCount.java recém-criado, escreva o programa MapReduce WordCount.
Para ver o código de exemplo completo do WordCount, consulte Code example.
No painel de navegação à esquerda, clique com o botão direito no script WordCount.java e selecione execute.
-
Na caixa de diálogo Run/Debug Configurations, configure o MaxCompute project.
Para a configuração do MaxCompute project, selecione um Endpoint como
http://service.cn-hangzhou.maxcompute.aliyun.com/apie, em seguida, escolha seu projeto de destino, comodoc_test_dev. Clique em OK. Em seguida, execute e depure o script WordCount.java e verifique se ele compila com sucesso.
Etapa 2: Gerar e enviar um arquivo JAR do MapReduce
No painel de navegação à esquerda do IntelliJ IDEA, clique com o botão direito no script WordCount.java e selecione Deploy to server....
-
Na caixa de diálogo Empacote um jar e envie o recurso, configure os parâmetros e clique em OK.
Selecione o MaxCompute project de destino. O campo Resource file exibe o caminho do arquivo JAR empacotado. Insira um Resource name, como
mapreduce-1.0-SNAPSHOT.jar. Opcionalmente, adicione um comentário no campo Resource comment. Selecione atualize se já existir para sobrescrever qualquer recurso existente com o mesmo nome.Para mais informações sobre os parâmetros, consulte Procedure.
NotaSe você usar o Maven para desenvolver o programa MapReduce, após empacotá-lo em um arquivo JAR, será necessário enviá-lo manualmente para o projeto do MaxCompute usando o cliente do MaxCompute. Para mais informações, consulte Add a resource. Exemplo:
add jar mapreduce-1.0-SNAPSHOT.jar;
Etapa 3: Executar o job do MapReduce
-
Log on to the MaxCompute client ou abra o cliente do MaxCompute no MaxCompute Studio.
O cliente do MaxCompute está integrado ao MaxCompute Studio, permitindo que você o execute diretamente da IDE. Para mais informações, consulte Integrate the MaxCompute client.
-
Crie uma tabela de entrada e uma tabela de saída.
O job do MapReduce lê dados da tabela de entrada e grava os resultados na tabela de saída. Exemplo:
-- Create the input table wc_in. create table wc_in (key STRING, value STRING); -- Create the output table wc_out. create table wc_out (key STRING, cnt BIGINT);Para mais informações sobre a sintaxe de criação de tabelas, consulte crie uma tabela.
-
Use o comando Tunnel Upload para inserir dados na tabela wc_in.
-
Use o comando
jarpara executar o job do MapReduce com o arquivo JAR gerado.Exemplo:
jar -resources mapreduce-1.0-SNAPSHOT.jar -classpath mapreduce-1.0-SNAPSHOT.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_out;-resources mapreduce-1.0-SNAPSHOT.jar: Especifica o recurso usado pelo job do MapReduce. Neste exemplo, o recurso é o arquivo mapreduce-1.0-SNAPSHOT.jar enviado em Step 2.-classpath mapreduce-1.0-SNAPSHOT.jar: Especifica o caminho local para o arquivo JAR que contém a MainClass.com.aliyun.odps.mapred.open.example.WordCount: A MainClass do programa MapReduce.wc_in wc_out: A tabela de entrada e a tabela de saída.
Para mais informações sobre o comando
jar, consulte Syntax. -
Execute o seguinte comando e visualize os dados na tabela wc_out.
select * from wc_out;Saída esperada:
+------------+------------+ | key | cnt | +------------+------------+ | hello | 1 | | odps | 1 | +------------+------------+