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

mapreduce读取hbase

阅读更多

该博客已经完全转移到http://sunhs.me

 

中并增加更多新的技术内容(hadoop为

 

主),欢迎访问!


package com.sun.hbase;


import java.io.IOException;


import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HBaseConfiguration;
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.hbase.util.Bytes;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;


/**
 * 从HBase数据库中读数据
 * @author asheng
 * 读取时要设置好族名和列名(row34)
 * 输出结果在:"/home/asheng/Hbase/out/"下
 */
public class ReadDataFromHBase {
/**
 * 使用TableMapper说明是从hbase中读取数据,那么无需设置TableMapper的输入类型,只需设置其输出类型即可TableMapper<Text,Text>
 * 但是在map方法中要使用相应的类型map(ImmutableBytesWritable row, Result value, Context context) 
 */
public static class THMapper extends TableMapper<Text,Text> 
 {
private Text text = new Text();
public void map(ImmutableBytesWritable row, Result value, Context context) 
 {
String row_ = new String(row.get());
String val = new String(value.getValue(Bytes.toBytes("f1"), Bytes.toBytes("qualifier")));
 text.set(val);     
 System.out.println("key:" + row_ + "," + "value:" + text);
 try {
        context.write( new Text(row_),text);    
} catch (IOException e) {
        e.printStackTrace();
} catch (InterruptedException e) {
        e.printStackTrace();
}
}
         }
public static class THDriver extends Configured implements Tool{
    @Override
    public int run(String[] arg0) throws Exception {
        Configuration conf = HBaseConfiguration.create();
        conf.set("hbase.zookeeper.quorum.", "localhost");  
        
        Job job = new Job(conf,"Hbase-to-Txt");
        job.setJarByClass(ReadDataFromHBase.class);
        
        Path out = new Path("/home/asheng/Hbase/out/");
        
        job.setOutputFormatClass(TextOutputFormat.class);
        FileOutputFormat.setOutputPath(job, out);
        
        job.setMapperClass(THMapper.class);
        
        Scan scan = new Scan();
        scan.setCaching(500);        
        scan.setCacheBlocks(false);  
        
        TableMapReduceUtil.initTableMapperJob("tab", scan, THMapper.class, Text.class, Text.class, job);
        job.waitForCompletion(true);
        return 0;
    }
}
public static void main(String [] args) throws Exception{
        int mr;
        mr = ToolRunner.run(new Configuration(),new THDriver(),args);
        System.exit(mr);
    }
}

 

分享到:
评论

相关推荐

    MapReduce实例

    使用MapReduce读取hbase数据库中千万级别的数据,处理数据并统计,将统计后的结果存入mysql

    Mapreduce实验报告.doc

    Mapreduce实验报告 前言和简介 MapReduce是Google提出的一种编程模型,在这个模型的支持下可以实现大规模并行化计 算。在Mapreduce框架下一个计算机群通过统一的任务调度将一个巨型任务分成许多部分 ,分别解决然后...

    merge-hbase.rar

    hbase的mapreduce, 是Hbase权威指南上面的例子, 例7.1: MapReduce作业从一个文件中读取数据并写入Hbase表

    Hbase中文文档

    11.8. 从 HBase读取 11.9. 从 HBase删除 11.10. HDFS 11.11. Amazon EC2 11.12. 案例 12. 故障排除和调试 HBase 12.1. 通用指引 12.2. Logs 12.3. 资源 12.4. 工具 12.5. 客户端 12.6. MapReduce 12.7. NameNode ...

    java大数据作业_5Mapreduce、数据挖掘

    3.HBASE的Map、Reduce继承类和序列化类是什么 4.简述容量调度的配置方法 5.简述mapreduce流程 6.简述二次排序算法 有输入数据如下所示: 1 2 2 3 2 1 4 6 3 1 3 8 3 2 需要使用二次排序算法,得到如下处理结果: 1 2...

    基于分布式数据库的图像检索系统

    =&gt; 从hdfs中读取结果(MapReduce输出默认根据中间结果的Key值排序) =&gt; 从'dbinfo'中读取相应的图片信息,并输出结果 代码:queryMR.py, sift.py, SortDriver.java 3. **非分布式检索(做对比)** 利用倒排索引,...

    Hadoop整合Hbase案列详解

    要求:读取HBase当中user这张表的f1:name、f1:age数据,将数据写入到另外一张user2表的f1列族里面去==*** 第一步:创建表 **注意:**两张表的列族一定要相同 /** create 'user','f1' put 'user','rk001','f1:name...

    大数据数据库入库

    hdfs上内容读取到hbase,纯正的Mapreduce代码。试试看,支持多线程

    读写数据库数据的mr程序

    以落地方式从mysql数据库读取数据到HBASE中的mapreduce程序

    大数据技术原理与应用.docx

    HBase B.MapReduce; HBase C.GFS; MapReduce D.HDFS; MapReduce(正确答案) 5. 5单选(2分)HDFS默认的一个块大小是() [单选题] * A.32KB B.8KB C.64MB(正确答案) D.16KB 6. 6单选(2分)在分布式文件系统HDFS中, ...

    Hadoop权威指南 第二版(中文版)

    MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何构建Hadoop集群,如何管理Hadoop;Pig简介;Hbase简介;Hive简介;...

    hadoop的经典讲义

    MapReduce : 大型分布式数据处理模型,是Google MapReduce的开源实现。 •合并/计算模型。 其他相关组成: •Hbase:结构化分部式数据库。BigTable的开源实现。 •Hive:提供摘要和查询功能的数据仓库。 •...

    Hadoop权威指南(中文版)2015上传.rar

    第2章 关于MapReduce 一个气象数据集 数据的格式 使用Unix工具进行数据分析 使用Hadoop分析数据 map阶段和reduce阶段 横向扩展 合并函数 运行一个分布式的MapReduce作业 Hadoop的Streaming Ruby版本 Python版本 ...

    spark实现财经新闻搜索引擎(正文提取、中文分词、倒排索引构建、执行搜索)

    (4)执行搜索,对用户搜索词进行分词,从倒排索引读取对应词汇,读取TF值,读取数据计算IDF值,根据IF×IDF值对词汇对应的文章进行排序,显示排序后的正文摘要 评分标准:25分,有交互式UI(如网页)+10分 (5)...

    基于大数据平台数据分析技术选型调研.pdf

    由于 MapReduce 数据处理流程的限制,效率更⾼的算法却⽆法实现 分布式⾮关系型数据库–HBase 优点: 1. 容量⼤:Hbase单表可以有百亿⾏、百万列,数据矩阵横向和纵向两个维度所⽀持的数据量级都⾮常具有弹性 2. 列...

    深入浅出spark.pptx

    * 与 Hadoop 无缝衔接:可以使用 YARN 作为它的集群管理器,读取 HDFS、HBase 等一切 Hadoop 的数据。 * 先进架构:采用 Scala 语言编写,底层采用了 actor model 的 akka 作为通讯框架,代码十分简洁高效。基于 DAG...

    2017最新大数据架构师精英课程

    91_job split计算法则-读取切片的法则 92_job seqfile5 v! h+ R9 L1 w, U* T6 J# M 93_job 全排序-自定义分区类2 n% h" `: b4 c) C3 J9 S 94_job二次排序5 t3 Z2 R- ]( a: s* c0 Z 95_从db输入数据进行mr计算: L. M4...

    Hadoop-Programs:Hadoop 程序

    MapReduce 程序需要 jared,而 HBase 程序不需要 jared。 Hadoop 程序应该运行在 Hadoop 的主目录中,而 HBase 程序可以在任何目录中运行。 减速器中的 Hadoop 平均值: 该程序演示了减速器中的一个功能。 ...

    基于大数据下的spark快速大数据分析.pdf

    Spark 不仅仅能够将 HDFS (分布式文件系 统) 上面的文件读取为分布式数据集, 还支持本地文 件、 Hive、 HBase 等。 每一个 Spark 应用都会由一个驱动 器程序 (Driver Program) 来发起集群上的并行操作[2]。 3 ...

    MR-read-Hfile2

    这是用于扫描整个hbase表的mapreduce 与TableMapReduceUtil不同,这是直接从HFile读取的 它比TableMapReduceUtil更快

Global site tag (gtag.js) - Google Analytics