天天看点

自定义 MR1 之 Reducer&Driver | 学习笔记

开发者学堂课程【分布式数据库 HBase 快速入门:自定义 MR1 之 Reducer&Driver】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:

https://developer.aliyun.com/learning/course/101/detail/1756

自定义 MR1 之 Reducer&Driver

内容介绍

一、FruitReducer.java

二、FruitDriver.java

一、FruitReducer.java:

package org.apache.hadoop.hbase.client;

import ...

@InterfaceAudience.Public

@nterfaceStability.Evolving

public abstract class Mutation extends 0perationWithAttributes implements Row,

Cel1Scannable,

HeapSize {

public static final long MUTATION_OVERHEAD = ClassSize.align(

//This

num: ClassSize.OBJECT+

//row + 0perationWithAttributes.attributes

2* ClassSize.REFERENCE+

// Timestamp

1* Bytes.SIZEOF_LONG +/ / durability

ClassSize.REFERENCE +

package com.atguigu.mr1 ;

import org.apache.hadoop.hbase.client.Put;

import org.apache.hadoop.hbase.io.ImmutableBytesWritable;

import org.apache.hadoop. hbase. mapreduce.TableReducer;

import org.apache.hadoop.io.NullWritable;

import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;

public class FruitReducer extends TableReducer {

@0verride

protected void reduce(ImmutableBytesWritable key,Iterable values,Context context)throws IOException,InterruptedException {

//遍历

for (Put value : values){

context.write(NullWritable.get(), value) ;

}

}

}

二、FruitDriver.java:

package com.atguigu.mr1 ;

import org.apache. hadoop.conf.Configuration;import org.apache.hadoop.util.Tool;

public. .class..FruitDriverIextends..Configuration implements .Tool {

@Override

public int run(String[] args) throws Exception {

//获取任务对象

Job job = Job.getInstance(configuration) ;

//指定Driver类

job.setJarByClass(FruitDriver.class) ;

//指定Mapper

TableMapReduceUtil.initTableMapperJob( table: " fruit",

new Scan(),

FruitMapper.class,

ImmutableBytesWritable.class,Put.class,

Put.class,job);

//指定Reducer

TableMapReduceUtil.initTableReducerJob( table:"fruit_mr",

FruitReducer.class,

job);

//提交

boolean b = job.waitForCompletion( verbose: true) ;

return b?0:1;

}

@Override

public void setConf(Configuration conf) {

}

@0verride

public Configuration getConf() {

public static void main(String[] args)throws Exception {

Configuration configuration = HBaseConfiguration. create() ;

int i = ToolRunner. run(configuration,new FruitDriver(),args);

}

}

继续阅读