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,速度很快,里面详细讲述了代码的编写过程,值得下载
HBase是一个分布式的、面向列的NoSQL数据库,它建立在HDFS之上,提供实时读写操作。HBase按照列族组织数据,每个表被划分为多个行,行由行键(Row Key)唯一标识。列族内的列可以根据需求动态添加,数据按时间戳排序...
MapReduce是Hadoop的核心组件之一,它是一种编程模型,用于大规模数据集(大于1TB)的并行计算。在本场景中,Map阶段将原始数据分割成小块,并在集群的不同节点上并行处理。Reduce阶段则负责聚合这些处理结果,生成...
标题 "HDFS 通过 mapreduce 进行 HBase 导入导出" 涉及的是大数据处理领域中的两个重要组件——Hadoop Distributed File System (HDFS) 和 HBase,以及它们之间的数据交互。HDFS 是 Hadoop 的分布式文件系统,而 ...
HDFS+MapReduce+Hive+HBase十分钟快速入门.pdf
HDFS+MapReduce+Hive+HBase十分钟快速入门,包括这几个部分的简单使用
在Java编程环境中,操作HBase并将其数据写入HDFS(Hadoop Distributed File System)是一项常见的任务,特别是在大数据处理和分析的场景下。本篇将详细介绍如何使用Java API实现这一功能,以及涉及到的关键技术和...
对Hadoop中的HDFS、MapReduce、Hbase系列知识的介绍。如果想初略了解Hadoop 可下载观看
《hadoop-HDFS+MapReduce+Hive+Hbase快速入门》,一门入门hadoop的经典书籍,相信能够给学习云计算的大家带来帮助。
Hadoop MapReduce是Hadoop的核心组件之一,它提供了编程模型,允许开发者以分布式方式进行复杂的数据处理。在MapReduce的基础上,可以实现对HBase数据库的数据操作,包括读取、写入和更新HBase表中的数据。 在使用...
### 大数据技术 Hadoop开发者第二期 MapReduce HDFS Hive Mahout HBase 相关知识点解析 #### 一、Hadoop 业界资讯 - **InfoWorld 授予 Apache Hadoop 年度技术创新奖章** - **背景**:2010年1月,InfoWorld 授予 ...
总的来说,将HDFS上的文件导入HBase是一个涉及数据处理、数据库设计和编程技术的综合任务。在Cloudera的CDH环境中,开发者可以利用丰富的工具和库来高效地完成这一过程。通过深入研究"ImpDataToHbase"的源代码,可以...
HBase,全称为Hadoop Database,是构建在Hadoop文件系统(HDFS)之上的分布式数据库。它以表格的形式存储数据,支持实时查询,适用于处理PB级别的结构化和半结构化数据。HBase的核心特性包括强一致性的读写操作、...
本资料主要涵盖了Hadoop开发者第二期的学习内容,包括Nutch、MapReduce、HDFS、Hive、Mahout以及HBase这六个关键组件,共计64页的深度解析。 1. **Nutch**:Nutch是一款开源的网络爬虫项目,它主要用于抓取互联网上...
MapReduce是一种编程模型,用于大规模数据集的并行处理。它将复杂的大数据处理任务分解为两个阶段:Map阶段和Reduce阶段,从而实现了高效的数据处理和计算。 - **Map阶段**:在这个阶段,数据被切分为小块,每个Map...
HBase是构建在Hadoop文件系统(HDFS)之上的列式存储数据库,它支持实时读写操作,特别适合处理大规模稀疏数据。HBase的表由行、列族、时间戳组成,提供了水平扩展的能力,可以应对PB级别的数据存储。 三、...
通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。通过这一阶段的调研总结,从内部机理的...
本文将深入探讨如何构建一个基于HDFS 2.7.3和HBase 1.2.5的HA环境,并使用Quorum Journal Manager (QJM)来确保数据的可靠性。QJM是一种在Hadoop中实现NameNode HA的关键组件,它通过协调JournalNodes来持久化HDFS的...