本文将为您介绍安装好MaxCompute客户端后,如何快速编写和运行MapReduce WordCount示例程序。

前提条件

  • 编写、编译、运行MapReduce前,需要首先安装JDK 1.6或以上版本。
    说明 如果您使用Maven,可以从Maven 库中搜索odps-sdk-mapred获取不同版本的Java SDK,相关配置信息如下所示。
    <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>odps-sdk-mapred</artifactId>
        <version>0.26.2-public</version>
    </dependency>
  • 请参见安装并配置客户端对MaxCompute客户端进行部署。更多关于MaxCompute客户端的使用,请参见MaxCompute客户端

操作步骤

  1. 安装并配置好客户端后,运行bin目录下的MaxCompute客户端(Linux系统下运行./bin/odpscmd,Windows下运行./bin/odpscmd.bat),进入相应项目空间中。
  2. 输入建表语句,创建输入和输出表,如下所示。
    --创建输入表wc_in。
    CREATE TABLE wc_in (key STRING, value STRING);
    --创建输出表wc_out。
    CREATE TABLE wc_out (key STRING, cnt BIGINT);

    更多创建表的语句请参见创建表

  3. 在表wc_in中插入数据。您可以通过以下两种方式插入数据:
    • 使用Tunnel命令上传数据。
      需要插入的数据如下所示,请在本地创建kv.txt文件保存数据,假设kv.txt文件本地存放路径为D:\。
      238,val_238
      186,val_86
      186,val_86
      执行如下命令,上传数据。
      tunnel upload D:\kv.txt wc_in;
    • 执行如下SQL语句直接插入数据。
      INSERT INTO table wc_in VALUES ('238',' val_238'),('186','val_86'),('186','val_86');
  4. 开发MapReduce程序并上传MaxCompute。
    在Eclipse或MaxCompute Studio中创建一个项目工程,而后在此工程中编写MapReduce程序。本地调试通过后,将编译好的程序(Jar 包,例如Word-count-1.0.jar)导出并上传至MaxCompute。详情请参见MapReduce开发插件介绍Eclipse开发插件
    说明 本文中,您直接使用WordCount示例中的代码示例生成Word-count-1.0.jarJar包即可,无需自己开发。
  5. 在MaxCompute客户端,添加Jar包到project资源(例如,此处的Jar包名为word-count-1.0.jar)。
    add jar word-count-1.0.jar;
  6. 在MaxCompute客户端运行Jar命令。
    jar -resources word-count-1.0.jar -classpath /home/resources/word-count-1.0.jar com.taobao.jingfan.WordCount wc_in wc_out;
  7. 在MaxCompute客户端查看结果。
    SELECT * FROM wc_out;
    说明 如果您在 Java 程序中使用了任何资源,请务必将此资源加入-resources参数。Jar命令的详细介绍请参见作业提交