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

简介: 快速学习自定义 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);

}

}

相关文章
|
运维 负载均衡 网络协议
linux网络管理(链路聚合、桥接网络、故障排查、常用工具)
网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。
1632 0
linux网络管理(链路聚合、桥接网络、故障排查、常用工具)
|
Python
Python中遇到奇怪的错误ValueError: bad marshal data
不是代码出的问题,是*.pyc文件被改动了。解决方法,删除所有*.pyc文件再运行
5138 0
|
传感器 物联网 测试技术
智能硬件类产品定制开发流程
硬件定制开发是指根据特定需求设计和制造符合客户要求的硬件产品,包括定制电路设计、功能模块集成、外观设计等。这种方式常用于满足特定行业的独特需求,以提高系统效率、降低成本、增强竞争力。
536 1
|
SQL 存储 缓存
MySQL是如何保证数据不丢失的?
文章详细阐述了InnoDB存储引擎中Buffer Pool与DML操作的关系。在执行插入、更新或删除操作时,InnoDB为了减少磁盘I/O,会在Buffer Pool中缓存数据页进行操作,随后将更新后的“脏页”刷新至磁盘。为防止服务宕机导致数据丢失,InnoDB采用了日志先行(WAL)机制,通过将DML操作记录为Redo Log并异步刷新到磁盘,结合双写机制和合理的日志刷新策略,确保数据的持久性和一致性。尽管如此,仍需合理配置参数以平衡性能与数据安全性。
413 1
MySQL是如何保证数据不丢失的?
|
安全 新能源
碳捕获与封存技术:减排的有效途径
【9月更文挑战第29天】全球气候变化日益严峻,碳捕获与封存技术(CCS)作为减排新兴技术,通过捕集、运输和封存三个环节,有效减少二氧化碳排放。本文详细探讨了CCS的技术原理、应用前景及挑战,指出其在减缓气候变化、促进低碳经济和多样化场景中的重要作用,并提出了技术成熟度提升、成本降低及安全性监管等方面的解决方案。
|
API
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
2024-05-14 最新!OpenAI 新模型 GPT-4 omni 简单测试,4o速度确实非常快!而且很便宜!
174 0
|
人工智能 机器人 Linux
超级炫酷的AI绘图工具—MidJourney入门使用教程
超级炫酷的AI绘图工具—MidJourney入门使用教程
|
存储 数据处理
一篇文章彻底学会画数据流图
一篇文章彻底学会画数据流图
11311 0
|
存储 数据采集 监控
【数据挖掘实战】——应用系统负载分析与容量预测(ARIMA模型)
项目地址:Datamining_project: 数据挖掘实战项目代码
1674 0
|
Java C++
C++编译错误解决办法:Class_Label[abi:cxx11]'被多次定义
C++编译错误解决办法:Class_Label[abi:cxx11]'被多次定义
394 0

热门文章

最新文章