开发者社区 问答 正文

MaxCompute快速入门:编写MapReduce



本文将为您介绍安装好 MaxCompute 客户端后,如何快速运行 MapReduce WordCount 示例程序。如果您使用 Maven,可以从 Maven 库 中搜索 odps-sdk-mapred 获取不同版本的 Java SDK。相关配置信息如下所示:

  1. <dependency>
  2.     <groupId>com.aliyun.odps</groupId>
  3.     <artifactId>odps-sdk-mapred</artifactId>
  4.     <version>0.26.2-public</version>
  5. </dependency>

注意:


操作步骤


  1. 创建输入和输出表,如下所示:CREATE TABLE wc_in (key STRING, value STRING);
  2. CREATE TABLE wc_out (key STRING, cnt BIGINT);
  3. -- 创建输入、输出表

更多创建表的语句请参见 创建表
上传数据。  
您可以通过以下两种方式上传数据:

  • 使用 Tunnel 命令上传数据。
    1. tunnel upload kv.txt wc_in
    2. -- 上传示例数据

    kv.txt 文件中的数据如下:
    1. 238,val_238
    2. 186,val_86
    3. 186,val_86

  • 您也可以用 SQL 语句直接插入数据,示例如下:
    1. insert into table wc_in select '238',' val_238' from (select count(*) from wc_in) a;

编写 MapReduce 程序并编译。
MaxCompute 为您提供了便捷的 Eclipse 开发插件,方便您快速开发 MapReduce 程序,并提供了本地调试 MapReduce 的功能。
您需要先在 Eclipse 中创建一个项目工程,而后在此工程中编写 MapReduce 程序。本地调试通过后,将编译好的程序(Jar 包)导出并上传至 MaxCompute。详情请参见 MapReduce 开发插件介绍。  
添加 Jar 包到 project 资源(比如这里的 Jar 包名为 word-count-1.0.jar):  
  1. add jar word-count-1.0.jar;

在 MaxCompute 客户端运行 Jar 命令:  
  1. jar -resources word-count-1.0.jar -classpath /home/resources/word-count-1.0.jar com.taobao.jingfan.WordCount wc_in wc_out;

在 MaxCompute 客户端查看结果:  
  1. select * from wc_out;

注意
如果您在 Java 程序中使用了任何资源,请务必将此资源加入 -resources 参数。Jar 命令的详细介绍请参见 作业提交

展开
收起
行者武松 2017-10-23 15:19:38 2180 分享 版权
阿里云 AI 助理回答

您提到的流程是使用MaxCompute(原名ODPS)运行MapReduce WordCount示例程序的详细步骤,这里我将根据您的描述简要概括并提供一些额外的说明和建议:

1. 环境准备

  • 安装JDK: 确保已安装JDK 1.6版本,因为编译和运行MapReduce任务需要这个版本的JDK。
  • 获取Java SDK: 使用Maven从库中下载odps-sdk-mapred,例如版本0.26.2-public。这一步骤是为了在项目中引入MaxCompute MapReduce相关的依赖。

2. 创建表与上传数据

  • 创建输入输出表: 使用MaxCompute SQL命令创建用于存储输入数据和输出结果的表。
  • 上传数据: 可以通过Tunnel命令或直接SQL插入语句来上传数据到输入表。Tunnel命令适合处理文件数据,而SQL插入则适用于小规模或结构化数据的快速测试。

3. 开发MapReduce程序

  • Eclipse开发插件: 利用阿里云提供的Eclipse插件可以更高效地开发、调试MapReduce程序。这包括代码编写、本地调试以及最终打包成Jar文件。
  • 编写MapReduce程序: 在Eclipse中编写WordCount程序,实现Mapper和Reducer逻辑。
  • 编译与导出: 编写完成后,编译项目生成Jar包,如word-count-1.0.jar

4. 运行MapReduce作业

  • 添加Jar包资源: 在执行MapReduce作业前,确保所有必要的资源(包括你的主Jar包和其他依赖)都通过add jar命令添加到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;
    
  • 查看结果: 作业执行完毕后,可以通过查询输出表wc_out来查看WordCount的结果。

注意事项

  • 资源管理: 如果程序中引用了外部资源(如配置文件),记得通过-resources参数一并上传。
  • 客户端配置: 确保MaxCompute客户端正确配置,包括访问凭证等,以便能够顺利执行命令。

以上步骤概述了从环境搭建到运行MapReduce作业的全过程。如果您在操作过程中遇到任何问题,可以参考阿里云官方文档或寻求技术支持帮助。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答