Hbase与MR的交互
小白的Hbase学习笔记
目录
1.从Hbase中读取学生表信息 统计每个班级下的人数 并将最后的结果写入HDFS或者本地文件系统
1.从Hbase中读取学生表信息 统计每个班级下的人数 并将最后的结果写入HDFS或者本地文件系统
package com.shujia.hbaseMROP;
import com.google.common.collect.Table;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.hbase.mapreduce.TableMapper;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import java.io.IOException;
//需求:
// 从Hbase中读取学生表信息 统计每个班级下的人数 并将最后的结果写入HDFS或者本地文件系统
public class Hbase2HDFS {
//添加依赖
//Map端
//Map端输入的应该是班级名称 -> 1
public static class myHbaseMapper extends TableMapper<Text, IntWritable> {
@Override
protected void map(ImmutableBytesWritable key, Result value, Mapper<ImmutableBytesWritable, Result, Text, IntWritable>.Context context) throws IOException, InterruptedException {
String row = Bytes.toString(key.get());
String rowKey = Bytes.toString(value.getRow());
System.out.println("row:"+row+"rowKey:"+rowKey);
byte[] bytes = value.getValue(
Bytes.toBytes("info")