开发者学堂课程【分布式数据库 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);
}
}