MapReduce--编程规则

1、Driver类

驱动类:任何一个程序想要运行,都要有main方法,包含main方法的类
需要自己开发,创建一个类

  • 官方推荐:继承Configured类,实现Tool接口
  • 功能:构建一个MapReduce程序:Job对象
  • 配置这个对象五大阶段
    • Input
    • Map
    • shuffle
    • reduce
    • output
    • 提交运行这个job

2、Input类

这个类不用自己开发,官方已经默认提供好了

  • 默认使用的输入类:TextInputFormat
  • 在配置job时,我们要设置读取hdfs的哪个文件决定了 程序从哪里读取数据

3、Mapper类

需要我们自己开发

  • 负责提供Map阶段执行的map方法
  • 必须继承Mapper
    • 重写map方法,实现用户自定义的map处理逻辑

4、Reducer类

需要我们自己开发

  • 负责提供Reduce阶段执行的reduce方法
  • 必须继承Reducer类
    • 重写reduce方法,实现用户自定义的reduce处理逻辑

5、Output类

这个类不用自己开发,官方已经默认提供好了

  • 默认使用的输出类:TextOutputFormat
  • 在配置job时,我们要设置最终的结果保存在HDFS的什么位置决定了我们的结果存储在什么地方

6、数据结构

  • 整个MapReduce程序中,所有的数据都是以KeyValue对的形式存在
  • 任何一种数据,在经过Input阶段,每一条数据都会变成一个KeyValue

7、KeyValue的数据类型

不能用Java中类型:int、double、boolean、String、long、null

  • 必须使用Hadoop中的类型:都是基于Java类型封装好的支持序列化的类型【JavaBean】
    • IntWritable
    • DoubleWirtable
    • BooleanWritable
    • Text
    • LongWritable
    • NullWritable
上一篇:单片机定时器1工作模式1中断控制键盘扫描实验的项目工程


下一篇:Windows使用Latex