`
ganliang13
  • 浏览: 252839 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mapreduce编程模型之hbase输入hdfs多路输出

阅读更多
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
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.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.MultipleOutputs;

import com.bfd.util.Const;


public class IPCount {
	
	static class MyMapper extends TableMapper<Text, Text> {
		@Override
		public void map(ImmutableBytesWritable row, Result value,Context context) throws IOException, InterruptedException {
			  
			for (KeyValue kv : value.raw()) {
				val = new String(kv.getValue(),"UTF-8");
				qualifier = new String(kv.getQualifier());
				if(qualifier.indexOf(">brand")==-1){
					context.write(gid, outVal);
				}
			}
		}
	}
	
	static class MyReducer extends Reducer<Text, Text, Text, Text> {
		@SuppressWarnings("rawtypes")
		private MultipleOutputs multipleOutputs; 
		protected void setup(Context context) throws IOException, InterruptedException {
			multipleOutputs =new MultipleOutputs<Text,Text>(context);
		}
		
		protected void cleanup(Context context) throws IOException, InterruptedException {
			multipleOutputs.close();
		}
		@SuppressWarnings("unchecked")
		public void reduce(Text key, Iterable<Text> values, Context context)throws IOException, InterruptedException {
			if(isTrue){
				multipleOutputs.write(NullWritable.get(),gid+"\t"+value,"active_normal");
			}else{
				multipleOutputs.write(NullWritable.get(),gid+"\t"+value,"nonactive_normal");
			}
		}			
    }
	
	public static void main(String[] args) throws Exception {
		Configuration conf = HBaseConfiguration.create();
		conf.set("hbase.zookeeper.quorum", Const.ZOOKEEPER_QUORAM);
		conf.set("zookeeper.znode.parent", Const.ZOOKEEPER_ZNODE_PARENT);
		Job job = new Job(conf, "IPCount");
		job.setJarByClass(IPCount.class);
		Scan scan = new Scan();
		scan.setCaching(500);
		scan.setCacheBlocks(false);
		TableMapReduceUtil.initTableMapperJob(args[0],scan,MyMapper.class,Text.class,Text.class,job);
		job.setReducerClass(MyReducer.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(Text.class);
		job.setNumReduceTasks(10);
		
		FileOutputFormat.setOutputPath(job, new Path(args[1]));
		System.exit(job.waitForCompletion(true) ? 0 : 1);
	}
}

 

分享到:
评论

相关推荐

    mapreduce方式入库hbase hive hdfs

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

    HDFS+MapReduce+Hive+HBase十分钟快速入门.zip_hbase_hdfs_hive_mapReduce

    HBase是一个分布式的、面向列的NoSQL数据库,它建立在HDFS之上,提供实时读写操作。HBase按照列族组织数据,每个表被划分为多个行,行由行键(Row Key)唯一标识。列族内的列可以根据需求动态添加,数据按时间戳排序...

    hadoop的mapreduce把oracle/mysq导入到hbase和hdfs中的程序

    MapReduce是Hadoop的核心组件之一,它是一种编程模型,用于大规模数据集(大于1TB)的并行计算。在本场景中,Map阶段将原始数据分割成小块,并在集群的不同节点上并行处理。Reduce阶段则负责聚合这些处理结果,生成...

    HDFS 通过mapreduce 进行 HBase 导入导出

    标题 "HDFS 通过 mapreduce 进行 HBase 导入导出" 涉及的是大数据处理领域中的两个重要组件——Hadoop Distributed File System (HDFS) 和 HBase,以及它们之间的数据交互。HDFS 是 Hadoop 的分布式文件系统,而 ...

    HDFS+MapReduce+Hive+HBase十分钟快速入门.pdf

    HDFS+MapReduce+Hive+HBase十分钟快速入门.pdf

    HDFS+MapReduce+Hive+HBase十分钟快速入门

    HDFS+MapReduce+Hive+HBase十分钟快速入门,包括这几个部分的简单使用

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

    在Java编程环境中,操作HBase并将其数据写入HDFS(Hadoop Distributed File System)是一项常见的任务,特别是在大数据处理和分析的场景下。本篇将详细介绍如何使用Java API实现这一功能,以及涉及到的关键技术和...

    Hadoop/HDFS/MapReduce/HBase

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

    《hadoop-HDFS+MapReduce+Hive+Hbase快速入门》

    《hadoop-HDFS+MapReduce+Hive+Hbase快速入门》,一门入门hadoop的经典书籍,相信能够给学习云计算的大家带来帮助。

    MapReduce on Hbase

    Hadoop MapReduce是Hadoop的核心组件之一,它提供了编程模型,允许开发者以分布式方式进行复杂的数据处理。在MapReduce的基础上,可以实现对HBase数据库的数据操作,包括读取、写入和更新HBase表中的数据。 在使用...

    大数据技术 Hadoop开发者第二期 MapReduce HDFS Hive Mahout HBase 共64页.pdf

    ### 大数据技术 Hadoop开发者第二期 MapReduce HDFS Hive Mahout HBase 相关知识点解析 #### 一、Hadoop 业界资讯 - **InfoWorld 授予 Apache Hadoop 年度技术创新奖章** - **背景**:2010年1月,InfoWorld 授予 ...

    将hdfs上的文件导入hbase的源代码

    总的来说,将HDFS上的文件导入HBase是一个涉及数据处理、数据库设计和编程技术的综合任务。在Cloudera的CDH环境中,开发者可以利用丰富的工具和库来高效地完成这一过程。通过深入研究"ImpDataToHbase"的源代码,可以...

    HBase MapReduce完整实例.rar

    HBase,全称为Hadoop Database,是构建在Hadoop文件系统(HDFS)之上的分布式数据库。它以表格的形式存储数据,支持实时查询,适用于处理PB级别的结构化和半结构化数据。HBase的核心特性包括强一致性的读写操作、...

    大数据技术 Hadoop开发者第二期 Nutch MapReduce HDFS Hive Mahout HBase 共64页.r

    本资料主要涵盖了Hadoop开发者第二期的学习内容,包括Nutch、MapReduce、HDFS、Hive、Mahout以及HBase这六个关键组件,共计64页的深度解析。 1. **Nutch**:Nutch是一款开源的网络爬虫项目,它主要用于抓取互联网上...

    Hadoop数据迁移--从Hadoop向HBase

    MapReduce是一种编程模型,用于大规模数据集的并行处理。它将复杂的大数据处理任务分解为两个阶段:Map阶段和Reduce阶段,从而实现了高效的数据处理和计算。 - **Map阶段**:在这个阶段,数据被切分为小块,每个Map...

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

    HBase是构建在Hadoop文件系统(HDFS)之上的列式存储数据库,它支持实时读写操作,特别适合处理大规模稀疏数据。HBase的表由行、列族、时间戳组成,提供了水平扩展的能力,可以应对PB级别的数据存储。 三、...

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

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

    hdfs2-7_3+hbase1_2_5 HA withQJM环境搭建

    本文将深入探讨如何构建一个基于HDFS 2.7.3和HBase 1.2.5的HA环境,并使用Quorum Journal Manager (QJM)来确保数据的可靠性。QJM是一种在Hadoop中实现NameNode HA的关键组件,它通过协调JournalNodes来持久化HDFS的...

Global site tag (gtag.js) - Google Analytics