`
pengpeng
  • 浏览: 84859 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一个简单的hadoop/hbase程序

阅读更多

 

mapper
public class OfferMapper extends TableMapper<Text, IntWritable> {

    private final static IntWritable one  = new IntWritable(1);
    private Text                     word = new Text();

    /**
     * rowkey,value,context
     */
    public void map(ImmutableBytesWritable key, Result value, Context context) throws IOException,
            InterruptedException {
     
        String titleValue = Bytes.toString(value.getValue(Bytes.toBytes("title"), null));
  
              for(KeyValue kv : value.list()){
                 System.out.println(kv.getValue().toString());
                  word.set(kv.getValue());
                  context.write(word, one);
              }

    }

}

 

     reducer:

 

public class OfferReducer extends Reducer<Text,IntWritable,Text,IntWritable> {
    
    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException,
            InterruptedException {
        
        int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        result.set(sum);
        context.write(key, result);
    }
 

}
 

 

 

public class OfferTask {

    final static String NAME = "OfferTask";

    /**
     * Sets up the actual job.
     * 
     * @param conf The current configuration.
     * @param args The command line parameters.
     * @return The newly created job.
     * @throws IOException When setting up the job fails.
     */
    public static Job createSubmittableJob(Configuration conf, String[] args) throws IOException {
        String tableName = args[0];
        // Path inputDir = new Path(args[1]);
        Job job = new Job(conf, NAME + "_" + tableName);
        job.setJarByClass(OfferTask.class);
       
    
        Scan myScan = new Scan();
        TableMapReduceUtil.initTableMapperJob(tableName, myScan, OfferMapper.class, Text.class,
                IntWritable.class, job);
       
        TableMapReduceUtil.initTableReducerJob(tableName, OfferReducer.class, job);

  
       job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);
       
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        return job;
    }

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {

        Configuration conf = new Configuration();
        String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
        if (otherArgs.length != 2) {
            System.err.println("Usage: OfferTask <tableName> <out>");
            System.exit(2);
        }
    
        Job job = createSubmittableJob(conf, otherArgs);
        System.exit(job.waitForCompletion(true) ? 0 : 1);
    }
 

 

分享到:
评论

相关推荐

    hadoop+hbase集群搭建 详细手册

    2. HBase:HBase是一个基于Hadoop的分布式数据库,用于存储和处理大规模数据。 3. ZooKeeper:ZooKeeper是一个分布式协调服务,用于管理Hadoop和HBase集群。 二、机器集群结构分布 在本文中,我们将使用8台曙光...

    Hadoop+Hbase+Spark+Hive搭建

    我们将在/home/hadoop/cloud/softwares目录下存放软件安装包,/home/hadoop/cloud/program目录下存放程序文件,/home/hadoop/cloud/data目录下存放数据文件。 二、主机设置 2.1 设置IP地址 我们将使用静态IP地址...

    hadoop+hbase jar包

    Hadoop是一个开源的分布式计算框架,它允许在大规模集群上处理和存储大量数据。HBase则是基于Hadoop的分布式数据库,尤其适合处理大规模的非结构化数据。下面将详细阐述这两个技术以及它们相关的jar包。 1. Hadoop...

    hadoop和hbase安装操作手册

    - 此命令将创建一个名为`hadoop-0.19.2`的新目录。 **2. 配置Hadoop** - **JAVA_HOME变量配置**: - 使用命令`vi etc/hadoop/hadoop-env.sh`编辑文件。 - 添加`export JAVA_HOME=/usr/lib/jvm/java-1.8.0-...

    hadoop-2.7.2-hbase-jar.tar.gz

    Hadoop是Apache软件基金会的一个开源项目,它为大规模数据处理提供了一个分布式计算框架。Hadoop的核心包括HDFS(Hadoop Distributed File System)和MapReduce,前者为数据存储提供了高容错、高吞吐量的支持,后者...

    Hadoop+HBase+Java API

    **Hadoop** 是一个分布式计算框架,由Apache软件基金会开发,主要用于处理和存储海量数据。它的核心包括两个主要部分:Hadoop Distributed File System (HDFS) 和 MapReduce。HDFS 是一种分布式文件系统,能将大型...

    Hadoop数据迁移--从Hadoop向HBase载入数据

    HBase是一个基于Hadoop的分布式数据库,它主要用于随机实时读/写访问超大表,适用于存储半结构化或非结构化稀疏数据。在Hadoop数据迁移过程中,从Hadoop向HBase载入数据是常见的操作。 数据迁移主要分为两个步骤: ...

    hadoop hbase 全jar包

    Hadoop是一个开源框架,主要用于处理和存储大量数据,而HBase是建立在Hadoop之上的非关系型数据库,提供高可靠性、高性能、可伸缩的数据存储。 HBase是一个基于列族的分布式数据库,设计灵感来源于Google的Bigtable...

    Hadoop Hive HBase Spark Storm概念解释

    **HBase** 是一个分布式的、面向列的NoSQL数据库,它构建在Hadoop之上,特别是HDFS之上。HBase提供了一个高效的、支持随机读写的平台,适用于需要频繁访问大量数据的应用场景。 - **解决的问题**:HBase解决了...

    hadoop及hbase部署与应用

    - Hadoop是一个开源的分布式计算框架,基于Java开发,主要用于处理和存储大规模数据。它由两个主要组件组成:HDFS(Hadoop Distributed File System)和MapReduce。 - HDFS是一个分布式文件系统,它允许在集群中的...

    安装笔记:hadoop+hbase+sqoop2+phoenix+kerberos

    总的来说,这个安装过程涵盖了大数据基础设施的多个层面,包括数据存储、计算资源管理、实时数据处理、安全认证以及数据迁移,是构建一个完整Hadoop生态系统的实践步骤。每个组件的选择和配置都需要根据实际需求和...

    java集成hadoop-hbase用到的jar包

    Hadoop是一个分布式存储和计算框架,而HBase是一个构建在Hadoop之上的非关系型数据库(NoSQL),特别适合处理大规模数据。这里我们将详细探讨Java如何与这两个组件进行交互,并重点关注所需的jar包。 首先,Java...

    Hadoop与HBase自学笔记

    这篇笔记详细指导了初学者如何从零开始构建Hadoop和HBase环境,对于想要学习分布式存储和计算的人来说,是一个宝贵的资源。通过这个过程,你可以深入了解Hadoop和HBase的工作原理,为后续的分布式应用开发打下坚实...

    基于hadoop和hbase的分布式索引集群研究.pdf

    Hadoop是一个由Apache基金会开发的分布式系统基础架构,它由HDFS、MapReduce和HBase三个核心组件组成。HDFS是一种主从结构的分布式文件系统,它包含了管理元数据的NameNode和存储数据的DataNode。MapReduce是分布式...

    hadoop,hbase,hive版本兼容性说明.zip

    在大数据处理领域,Hadoop、HBase和Hive是三个非常关键的组件,它们共同构建了一个高效、可扩展的数据处理框架。本文件“hadoop,hbase,hive版本兼容性说明.zip”显然提供了关于这三个组件之间如何协同工作的详细信息...

    Hadoop搭建详细流程

    完成以上步骤后,你将在Ubuntu虚拟机上拥有一个运行的Hadoop和HBase环境,可以在Eclipse中编写Java应用程序进行数据操作。请注意,这里提供的是一般的安装流程,具体版本可能需要根据实际情况进行调整。在实际部署时...

    hadoop1.0.2 hbase0.94安装

    通过上述教程,学习者将能够搭建一个基本的Hadoop-HBase环境,进行MapReduce编程,并掌握Hadoop-Eclipse插件的使用,从而更好地应对大数据处理的挑战。记住,理解并熟练掌握这些基础是进入大数据领域的第一步。

Global site tag (gtag.js) - Google Analytics