`
刘小小尘
  • 浏览: 67486 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MapReduce操作hbase实例代码 MapReduce读取文件,存入hbase实例

 
阅读更多

废话我就不说了,直接上代码,很简单,一看就懂

/**----------------------------------------------------------------
// 文件名: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);
	}
}

废话我就不说了,直接上代码



分享到:
评论

相关推荐

    基于MapReduce和HBase的海量网络数据处理.pdf

    系统的设计基于Hadoop和HBase的架构,充分利用了Hadoop的分布式文件系统HDFS和MapReduce的快速计算能力,以及HBase的高效数据存储和查询能力。该系统可以实现对海量网络数据的可靠存储、快速解析和高效查询。 系统...

    MapReduce on Hbase

    在MapReduce的基础上,可以实现对HBase数据库的数据操作,包括读取、写入和更新HBase表中的数据。 在使用MapReduce操作HBase时,可以通过Hadoop MapReduce框架提供的API与HBase数据库进行交互。这使得开发者可以在...

    mapreduce方式入库hbase hive hdfs

    mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载

    HBase MapReduce完整实例.rar

    通过这个实例,学习者可以深入了解HBase与MapReduce的整合过程,掌握如何利用MapReduce进行HBase数据的批处理,以及如何设计和优化MapReduce任务以提高处理效率。这对于大数据开发人员来说,是一份非常有价值的参考...

    HDFS 通过mapreduce 进行 HBase 导入导出

    - **Map阶段**:在 MapReduce 任务中,Map 函数读取 HDFS 上的数据文件,将每条记录拆分成键值对,其中键可以是 HBase 表的行键和列族信息,值为对应的字段值。 - **Reduce阶段**:Reduce 函数接收来自 Map 的键值...

    HBase MapReduce完整实例

    通过HBase的TableInputFormat和TableOutputFormat,MapReduce作业可以直接读取和写入HBase表。Map阶段可以对表中的行或列族进行操作,Reduce阶段则负责数据的汇总和整合。 四、Eclipse工程实践 本实例中提供的...

    Hadoop/HDFS/MapReduce/HBase

    对Hadoop中的HDFS、MapReduce、Hbase系列知识的介绍。如果想初略了解Hadoop 可下载观看

    结合MapReduce和HBase的遥感图像并行分布式查询.pdf

    HBase作为一种NoSQL数据库,基于列存储模式,特别适合处理大量数据的读写操作,尤其在实时查询方面表现卓越。在本文技术方案中,HBase被用来存储已构建好的瓦片金字塔图像块,每个图像块通过HBase进行编码后存储,...

    详解Hadoop核心架构HDFS+MapReduce+Hbase+Hive

    通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...

    java操作Hbase之从Hbase中读取数据写入hdfs中源码

    同时,为了提高性能,你还可以考虑使用HBase的Scan操作或Hadoop MapReduce进行批量处理。 记住,为了保证程序的稳定性和效率,你需要对HBase和HDFS的配置进行适当的优化,比如设置合理的缓存大小、批处理大小等。...

    hadoop基础,hdfs,hive,mapreduce,hbase

    hadoop基础,hdfs,hive,mapreduce,hbase

    WordCount,HBase MR样例代码

    5. **实例演示**:可能会提供一个完整的示例,展示如何从HBase中读取数据,使用MapReduce进行处理,然后将结果写回HBase。 6. **执行与调试**:说明如何在Hadoop集群上提交和监控MapReduce作业,以及如何解决可能...

    hbase导入话单数据mapreduce函数实现执行过程实例(博客附件)

    标题中的“hbase导入话单数据mapreduce函数实现执行过程实例”揭示了本文将探讨如何使用MapReduce在HBase中导入大数据,特别是话单记录。HBase是一个分布式、版本化的NoSQL数据库,常用于处理大规模的数据。...

    MapReduce输出至hbase共16页.pdf.zip

    3. 实现TableOutputFormat:MapReduce的输出格式默认为文件,但要将结果直接写入HBase,需自定义TableOutputFormat类,使其能够将MapReduce的输出直接转化为HBase的Put操作。 4. 写入HBase:在Reduce阶段,每个...

    利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎.zip

    利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎 ## 基本介绍 - InjectDriver 将本地的url注入到hbase数据库中等待下一步执行 - FetchDriver 负责抓取url对应的网页内容 - ParserUrlDriver 解析所抓取...

    MapReduce导出hbase数据工具BillFeeImport.jar

    hbase导入hbase导入

    基于Python+SpringBoot+Vue+HDFS+MapReduce+HBase+Hive+Kafka+Sp.zip

    标题中的“基于Python+SpringBoot+Vue+HDFS+MapReduce+HBase+Hive+Kafka+Spark”提到了一系列技术,它们都是大数据处理、分布式系统和Web开发的重要组件。接下来,我们将深入探讨这些技术及其在实际项目中的应用。 ...

    关于 HDFS,Yarn,MapReduce,HBase,Hive,Pig,Sqoop,Flume,Zookeeper,MemCached,Redis,Storm,Scala,Spark,F.zip

    关于 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-0.20.0-HDFS+MapReduce+Hive+HBase十分钟快速入门”揭示了文章旨在介绍Hadoop生态中几个关键组件的基础使用,尤其是针对初学者如何在短时间内掌握这些技术。下面,我们将深入探讨...

    人工智能-项目实践-搜索引擎-利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎

    利用hadoop的mapreduce和Hbase,基于lucene做的简单的搜索引擎 基本介绍 InjectDriver 将本地的url注入到hbase数据库中等待下一步执行 FetchDriver 负责抓取url对应的网页内容 ParserUrlDriver 解析所抓取网页内容...

Global site tag (gtag.js) - Google Analytics