hbase如何编写mapreduce
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要为大家展示了"hbase如何编写mapreduce",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"hbase如何编写mapreduce"这篇文章
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
网络安全转正工作总结
南京私有服务器供货厂
小程序中怎么获取数据库信息
流媒体服务器实现语音广播
组态王数据库上传其他电脑
网络安全产品售后工程师面试
如何购买亚马逊服务器
湖北省公安厅网络安全邹德文
摩电网络技术有限公司
搭建 yum源服务器
嵌入式软件开发 知乎
富士一卡通图像服务器下载
软件开发的目标是什么
图形界面如何删除数据库
湖北生活网络安全教育图片
服务器怎么更新
计算机三级三级网络技术证书
国产数据库开源技术
浅谈数据库范式
安徽连连花网络技术
jsp连接mysql数据库代码
数据库系统的5种安全性
网络安全守望者
数据库 大数据对象
电信机房服务器管理
查找名字所对应数据库
东营德新网络技术服务怎么样
软件开发招投标周期
加快推进信息网络技术
软件开发专科学校公办