hbase如何编写mapreduce
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要为大家展示了"hbase如何编写mapreduce",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"hbase如何编写mapreduce"这篇文章
千家信息网最后更新 2026年11月03日hbase如何编写mapreduce
这篇文章主要为大家展示了"hbase如何编写mapreduce",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"hbase如何编写mapreduce"这篇文章吧。
package com.hbase.test;import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Mutation;import org.apache.hadoop.hbase.client.Put;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.mapreduce.TableReducer;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;public class HbaseMrTest { public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException { Configuration conf = HBaseConfiguration.create(); //配置conf conf.set("hbase.zookeeper.quorum", "bigdata01,bigdata02,bigdata03"); conf.set("hbase.zookeeper.property.clientPort", "2181"); Job job = Job.getInstance(conf, "word-count"); //指定执行job的主类 job.setJarByClass(HbaseMrTest.class); Scan scan = new Scan(); //定义mapper需要扫描的列 scan.addColumn(Bytes.toBytes("content"), Bytes.toBytes("words")); //配置mapper TableMapReduceUtil.initTableMapperJob("wordcount", scan,HMapper.class , Text.class, IntWritable.class, job); //配置recuder TableMapReduceUtil.initTableReducerJob("result", HReducer.class, job); //提交job System.exit(job.waitForCompletion(true)?0:1); }}// Text, IntWritable 为输出类型class HMapper extends TableMapper{ Text out = new Text(); IntWritable iw = new IntWritable(1); @Override protected void map(ImmutableBytesWritable key, Result value, Mapper.Context context) throws IOException, InterruptedException { //通过result 直接过得content:words 的值 byte[] bytes = value.getValue(Bytes.toBytes("content"), Bytes.toBytes("words")); if(bytes!=null) { String words = Bytes.toString(bytes); //对获得的一行单词进行分割 String[] ws = words.split(" "); for(String wd : ws) { out.set(wd); //写出值,如: you 1 context.write(out, iw); } } } }// Text, IntWritable 为mapper的输出类型class HReducer extends TableReducer{ @Override protected void reduce(Text text, Iterable iter, Reducer.Context context) throws IOException, InterruptedException { int sum = 0 ; //对iter遍历 for(IntWritable intw : iter) { sum+= intw.get(); } //new 一个put 构造函数内的值为row key Put put = new Put(Bytes.toBytes(text.toString())); //put添加columnfamily 和column put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("wordcnt"), Bytes.toBytes(String.valueOf(sum))); //将每个单词当做row key 写出,put是相加的总和 context.write(new ImmutableBytesWritable(Bytes.toBytes(text.toString())), put); } }最后将java文件export为RaunableJar放到linux java -jar hbase.jar com.hbase.test.HbaseMrTest 运行 原始数据:
运行结果:
以上是"hbase如何编写mapreduce"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
内容
篇文章
配置
单词
类型
学习
帮助
输出
运行
原始
一行
函数
总和
数据
文件
易懂
更多
条理
知识
结果
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技工作委员会毛军
科技股互联网
没上市的科技互联网公司
互联网 科技
深圳互联网科技公司
科技类的互联网平台
互联网汽车科技小镇
全球顶尖互联网科技公司
厦门千工互联网科技有限公司
和信科技工业互联网
苏州铭阳互联网科技有限公司
工业互联网等科技实现智能化赋能
黑云互联网科技有限公司
厦门江牛科技互联网
本届互联网大会上的黑科技
风投北京互联网科技
互联网科技平台产品运营
科技和互联网行业的特点
互联网科技对化妆品行业
互联网科技快速发展优美句子
今日互联网科技
互联网金融科技创新
融势互联网科技
国外互联网科技网站
多迪互联网科技有限公司
互联网科技创新企业排名
宁波青枫互联网科技有限公司
互联网科技和信息
张召忠谈中国互联网科技
河南商务圈互联网科技有限公司