如何实现一个MapReduce读取数据存入HBase
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍如何实现一个MapReduce读取数据存入HBase,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。车辆位置数据文件,格式:车辆id 速度:油耗:当前里程。通过M
千家信息网最后更新 2026年11月02日如何实现一个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安全错误
数据库的锁怎样保障安全
中国互联网科技工作委员会毛军
涨乐互联网科技
互联网科技会
科技制造互联网公司
北京互联网络科技有限公司
宜安科技 互联网金融
广州善班互联网科技
科技互联网大厂
广西互联网科技孵化中心
晋城互联网科技
特约风豹互联网科技为什么扣费
2021互联网科技公司排名
上海钢联属于互联网科技股吗
富国互联网科技002692
国产互联网科技公司
福仕德教育科技互联网
玉溪新华互联网科技怎么选
数字互联网科技有限公司
宁波允成互联网科技有限公司
知域互联网科技有限公司官网
互联网科技公司起名
关于新基建和互联网科技
平安科技 互联网
丰台科技园 互联网公司
互联网科技创新服务
互联网科技革命什么开始
互联网科技大赛获奖感言
世界互联网领先科技成果获奖
保险科技服务互联网营销体系
厦门江牛科技互联网