废话我就不说了,直接上代码,很简单,一看就懂
/**----------------------------------------------------------------
// 文件名:DataToHbase.java
//
// 创建时间:2012-11-7
//----------------------------------------------------------------*/
package com.xiaochen.mr.test;
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.hbase.mapreduce.TableReducer;
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.lib.input.FileInputFormat;
import org.jruby.util.Random;
/**
* 类描述
*
* @version [PZoom-V2.0]
* @author liuxiaochen
*
* 修改标识:
* 修改描述:
*
*/
public class DataToHbase
{
public static class MapHbase extends Mapper<Object, Text, Text, IntWritable>
{
private final static IntWritable one = new IntWritable(1) ;
private Text text = new Text() ;
public void map(Object key, Text value, Context context) throws IOException, InterruptedException
{
String line = value.toString() ;
StringTokenizer stiz = new StringTokenizer(line) ;
while(stiz.hasMoreTokens())
{
text.set(stiz.nextToken()) ;
context.write(text, one) ;
}
}
}
public static class ReduceHbase extends TableReducer<Text, IntWritable, Text>
{
public void reduce(Text text, Iterable<IntWritable> values, Context context)
throws IOException, InterruptedException
{
Put put = null ;
String rowkey = "" ;
int sum = 0 ;
for(IntWritable i : values)
{
sum += i.get() ;
}
rowkey = String.valueOf(new Random(100)) ;
put = new Put(rowkey.getBytes()) ;
put.add("content".getBytes(), "text".getBytes(), (sum+"").getBytes()) ;
put.add("content".getBytes(), "sum".getBytes(), text.toString().getBytes()) ;
context.write(new Text("xchen1"), put) ;
}
}
public static void main(String[] args) throws IOException, InterruptedException, ClassNotFoundException
{
Configuration conf = new Configuration();
conf.set("hbase.zookeeper.quorum","192.168.1.30,192.168.1.31,192.168.1.32");
conf.set("hbase.zookeeper.property.clientPort", "2222");
Job job;
job = new Job(conf, "Runner"); //
Path in = new Path("D:/testFile/mr2/a.txt") ;
job.setJarByClass(DataToHbase.class) ;
job.setMapOutputKeyClass(Text.class) ;
job.setMapOutputValueClass(IntWritable.class) ;
job.setMapperClass(MapHbase.class) ;
job.setReducerClass(ReduceHbase.class) ;
FileInputFormat.setInputPaths(job, in);
// org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.setOutputPath(job, new Path("D:/testFile/mr1/" + new Date().getTime())) ;
TableMapReduceUtil.initTableReducerJob("xchen1", ReduceHbase.class, job) ;
// com.hbase.TableMapReduceUtil.initMulitTableReducerJob("xchen1",ReduceHbase.class, job, null, null, null,
// null, true);
job.waitForCompletion(true);
}
}
废话我就不说了,直接上代码
分享到:
相关推荐
系统的设计基于Hadoop和HBase的架构,充分利用了Hadoop的分布式文件系统HDFS和MapReduce的快速计算能力,以及HBase的高效数据存储和查询能力。该系统可以实现对海量网络数据的可靠存储、快速解析和高效查询。 系统...
在MapReduce的基础上,可以实现对HBase数据库的数据操作,包括读取、写入和更新HBase表中的数据。 在使用MapReduce操作HBase时,可以通过Hadoop MapReduce框架提供的API与HBase数据库进行交互。这使得开发者可以在...
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
通过这个实例,学习者可以深入了解HBase与MapReduce的整合过程,掌握如何利用MapReduce进行HBase数据的批处理,以及如何设计和优化MapReduce任务以提高处理效率。这对于大数据开发人员来说,是一份非常有价值的参考...
- **Map阶段**:在 MapReduce 任务中,Map 函数读取 HDFS 上的数据文件,将每条记录拆分成键值对,其中键可以是 HBase 表的行键和列族信息,值为对应的字段值。 - **Reduce阶段**:Reduce 函数接收来自 Map 的键值...
通过HBase的TableInputFormat和TableOutputFormat,MapReduce作业可以直接读取和写入HBase表。Map阶段可以对表中的行或列族进行操作,Reduce阶段则负责数据的汇总和整合。 四、Eclipse工程实践 本实例中提供的...
对Hadoop中的HDFS、MapReduce、Hbase系列知识的介绍。如果想初略了解Hadoop 可下载观看
HBase作为一种NoSQL数据库,基于列存储模式,特别适合处理大量数据的读写操作,尤其在实时查询方面表现卓越。在本文技术方案中,HBase被用来存储已构建好的瓦片金字塔图像块,每个图像块通过HBase进行编码后存储,...
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...
同时,为了提高性能,你还可以考虑使用HBase的Scan操作或Hadoop MapReduce进行批量处理。 记住,为了保证程序的稳定性和效率,你需要对HBase和HDFS的配置进行适当的优化,比如设置合理的缓存大小、批处理大小等。...
hadoop基础,hdfs,hive,mapreduce,hbase
5. **实例演示**:可能会提供一个完整的示例,展示如何从HBase中读取数据,使用MapReduce进行处理,然后将结果写回HBase。 6. **执行与调试**:说明如何在Hadoop集群上提交和监控MapReduce作业,以及如何解决可能...
标题中的“hbase导入话单数据mapreduce函数实现执行过程实例”揭示了本文将探讨如何使用MapReduce在HBase中导入大数据,特别是话单记录。HBase是一个分布式、版本化的NoSQL数据库,常用于处理大规模的数据。...
3. 实现TableOutputFormat:MapReduce的输出格式默认为文件,但要将结果直接写入HBase,需自定义TableOutputFormat类,使其能够将MapReduce的输出直接转化为HBase的Put操作。 4. 写入HBase:在Reduce阶段,每个...
利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎 ## 基本介绍 - InjectDriver 将本地的url注入到hbase数据库中等待下一步执行 - FetchDriver 负责抓取url对应的网页内容 - ParserUrlDriver 解析所抓取...
hbase导入hbase导入
标题中的“基于Python+SpringBoot+Vue+HDFS+MapReduce+HBase+Hive+Kafka+Spark”提到了一系列技术,它们都是大数据处理、分布式系统和Web开发的重要组件。接下来,我们将深入探讨这些技术及其在实际项目中的应用。 ...
关于 HDFS,Yarn,MapReduce,HBase,Hive,Pig,Sqoop,Flume,Zookeeper,MemCached,Redis,Storm,Scala,Spark,Flink 等大数据框架的学习笔记大数据学习指南概述传统的 OLTP系统的数据一般是存储在关系型...
标题与描述中的关键词“Hadoop-0.20.0-HDFS+MapReduce+Hive+HBase十分钟快速入门”揭示了文章旨在介绍Hadoop生态中几个关键组件的基础使用,尤其是针对初学者如何在短时间内掌握这些技术。下面,我们将深入探讨...
利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎 基本介绍 InjectDriver 将本地的url注入到hbase数据库中等待下一步执行 FetchDriver 负责抓取url对应的网页内容 ParserUrlDriver 解析所抓取网页内容...