栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hadoopmapreduce理解(hbase mapreduce)

hadoopmapreduce理解(hbase mapreduce)

Hbase提供了TableMapReduceUtil工具类,可以直接使用

需要提供的包括,表名、Scan对象、mapper的class对象、输入,输出类型的class对象和job对象

TableMapReduceUtil.initTableMapperJob(
		Names.TABLE.getValue(),//表明
        scan,//Scan类
        AnalysisBeanMapper.class,//关联mapper方法
        AnalysisKey.class,//输入的key类型
        Text.class,//输入的value类型
        job//job
);

使用时需要添加Maven依赖


	org.apache.hbase
	hbase-mapreduce
	2.4.10

下面是完整的代码

package com.ct.analysis.tool;

import com.ct.analysis.io.MySQLRedisBeanOutputFormat;
import com.ct.analysis.kv.AnalysisKey;
import com.ct.analysis.kv.AnalysisValue;
import com.ct.analysis.mapper.AnalysisBeanMapper;
import com.ct.analysis.reducer.AnalysisBeanReducer;
import com.ct.common.constant.Names;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.JobStatus;
import org.apache.hadoop.util.Tool;

public class AnalysisBeanTool implements Tool{

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

        //1、获取job
        Job job = Job.getInstance();

        //2、获取jar包路径
        job.setJarByClass(AnalysisBeanTool.class);

        Scan scan = new Scan();
        //扫描的列族,如果不加则扫描全表
        scan.addFamily(Bytes.toBytes(Names.CF_CALLER.getValue()));


        //3、关联mapoer和reducer
        TableMapReduceUtil.initTableMapperJob(
                Names.TABLE.getValue(),//表明
                scan,//Scan类
                AnalysisBeanMapper.class,//关联mapper方法
                AnalysisKey.class,//输入的key类型
                Text.class,//输入的value类型
                job//job
        );
        job.setReducerClass(AnalysisBeanReducer.class);//关联reducer方法


        //5、设置最终输出的key,value类型
        job.setOutputKeyClass(AnalysisKey.class);
        job.setOutputValueClass(AnalysisValue.class);

        job.setOutputFormatClass(MySQLRedisBeanOutputFormat.class);

        boolean result = job.waitForCompletion(true);
        return result ? JobStatus.State.SUCCEEDED.getValue() : JobStatus.State.FAILED.getValue();

    }

    @Override
    public void setConf(Configuration conf) {

    }

    @Override
    public Configuration getConf() {
        return null;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772154.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号