大数据全系列 教程
1869个小节阅读:464.9k
目录
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Hbase2HdfsMapper
xxxxxxxxxx
package com.itbaizhan.hbase2hdfs;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.io.ImmutableBytesWritable;
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.Mapper;
import java.io.IOException;
public class Hbase2HdfsMapper extends TableMapper<Text, IntWritable> {
//定义输出的key value对象
private Text keyOut = new Text();
private IntWritable valOut = new IntWritable(1);
@Override
protected void map(ImmutableBytesWritable key, Result value, Mapper<ImmutableBytesWritable, Result, Text, IntWritable>.Context context) throws IOException, InterruptedException {
//key:对应的就是HBase表当前行数据的rowkey
System.out.println("key:"+key.toString());
//value就是从hbase读取到的一行数据的Result对象
//读取当前行数据中的cf:line单元格中的数据
byte[] data = value.getValue("cf".getBytes(), "line".getBytes());
//将数据转换为字符串
String line = Bytes.toString(data);
//按照空格拆分
String[] words = line.split(" ");
//遍历输出
for(String word:words){
keyOut.set(word);
context.write(keyOut,valOut);
}
}
}