如何实现一个MapReduce读取数据存入HBase
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,这篇文章给大家介绍如何实现一个MapReduce读取数据存入HBase,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。车辆位置数据文件,格式:车辆id 速度:油耗:当前里程。通过M
千家信息网最后更新 2025年12月03日如何实现一个MapReduce读取数据存入HBase
这篇文章给大家介绍如何实现一个MapReduce读取数据存入HBase,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
车辆位置数据文件,格式:车辆id 速度:油耗:当前里程。
通过MapReduce算出每辆车的平均速度、油耗、里程
vid1 78:8:120vid1 56:11:124vid1 98:5:130vid1 72:6:131vid2 78:4:281vid2 58:9:298vid2 67:15:309
创建Map类和map函数
import java.io.IOException;import java.util.StringTokenizer;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;public class VehicleMapper extends Mapper
创建Reduce类
import java.io.IOException;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.io.ImmutableBytesWritable;import org.apache.hadoop.hbase.mapreduce.TableReducer;import org.apache.hadoop.hbase.util.Bytes;import org.apache.hadoop.io.Text;public class VehicleReduce extends TableReducer{ @Override public void reduce(Text key, Iterable values, Context context) throws IOException, InterruptedException { int speed = 0; int oil = 0; int mile = 0; int count = 0; for (Text val : values) { String str = val.toString(); String[] arr = str.split(":"); speed += Integer.valueOf(arr[0]); oil += Integer.valueOf(arr[1]); mile += Integer.valueOf(arr[2]) - mile; // 累积里程 count++; } speed = (int) speed / count; // 求平均值 oil = (int) oil / count; mile = (int) mile / count; String result = speed + ":" + oil + ":" + mile; Put put = new Put(key.getBytes()); put.add(Bytes.toBytes("info"), Bytes.toBytes("property"), Bytes.toBytes(result)); ImmutableBytesWritable keys = new ImmutableBytesWritable(key.getBytes()); context.write(keys, put); }}
运行任务
import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;public class VehicleMapReduceJob { public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException { Configuration conf = new Configuration(); conf = HBaseConfiguration.create(conf); Job job = new Job(conf, "HBase_VehicleInfo"); job.setJarByClass(VehicleMapReduceJob.class); job.setMapperClass(VehicleMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(Text.class); FileInputFormat.addInputPath(job, new Path(args[0])); // 设置输入文件路径 TableMapReduceUtil.initTableReducerJob("vehicle", VehicleReduce.class, job); System.exit(job.waitForCompletion(true) ? 0 : 1); }}将代码导出成vehicle.jar,放在hadoop-1.2.1目录下,输入命令
./bin/hadoop jar vehicle.jar com/xh/vehicle/VehicleMapReduceJob input/vehicle.txt
HBase结果查询:

关于如何实现一个MapReduce读取数据存入HBase就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
数据
输入
车辆
里程
内容
文件
更多
油耗
速度
帮助
不错
一行
代码
任务
位置
信息
兴趣
函数
命令
小伙
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苏州美橙科技云服务器
本地服务器需要安装管理系统
社区未成年网络安全宣传
软件开发助理php
流浪地球网络安全视频
网络安全视频和题库
网络安全知识和防护技能手抄报
甘肃联通dns服务器云主机
大连文思海辉软件开发
关于网络安全的四格漫画
漯河网络安全工程师零基础
崇明区个人软件开发
广联达数据库要放哪儿
软件开发合同纠纷利息律师费
火绒带网络安全模式
小学网络安全教育材料
苹果5怎样开启移动数据库
dnf服务器深渊测试
厦门大学内部控制指标数据库
计算机网络技术上机题
数据库系统框架图
鹰潭企业服务器费用多少
分批删除数据库
数据库技术考试系统画关系图
苏州奇马网络技术有限公司
网络安全法第几条规定等级保护
天龙八部侠肝义胆服务器开服时间
魔电网络技术有限公司
sql数据库需要学习什么
杭州世硕新语网络技术有限公司