zoukankan      html  css  js  c++  java
  • Hbase笔记:批量导入


    工作中可能会有对HBase的复杂操作,我们现在对HBase的操作太简单了。复杂操作一般用HBaseScan操作,还有用框架对HBase进行复杂操作,iparler,sharker。
    我们说HBase是数据库,数据库是用来查询数据的,那么我们的数据怎么进入HBase呢,可以通过put,但是put有点儿慢,通常我们的数据都是位于hdfs中,我们期望
    把hdfs中的数据导入到HBase中,进行查询,下面就讲如何把HDFS中的数据导入到HBase,我们使用m/r导入,这也就是我们说的批量导入-BatchImport

    代码在PPT32、33、34--以电信日志为例做的。

    HBase表的创建:只有一个列族cf(共10多列,都放在这一个列簇中 )
    create 'wlan_log','cf'
    如何定义行键,在我们的HBase设计中,行键的设计是个关键,如何设计行键,要考虑一个因素,我们对数据的查询如果只是按行查询的话,我们只能依赖于行键,
    我们经常要查询的字段,一定要设计到行键中,我们这里经常用到的字段 是,手机号和时间,所以我们要把这两列放到我们的行键中。如何放呢?把他俩连到一起就行了,所以这里是手机号(msidn)和时间连在一起,我们中间加一个冒号隔开。msidn:yyyyMMddHHmmss


    接下来看代码(执行代码之前,需要先创建表):
    代码自己自己看吧,有几个要点,注意一下:
    1.以前的reduce继承的是Reducer类,现在继承的是TableReducer类,这个类是属于HBase中的一个类,我们就是通过这个类把我们在reduce拿到
    的数据写入到HBase中
    2.在main函数中,需要设置Zookeeper,需要设置表名,还需要设置超时
    configuration.set()
    configuration.set()
    configuration.set()
    2.在设置job的输出类型时:job.setOutputFormatClass(TableOutputFormat.class);
    以前是:job.setOutputFormatClass(TextOutputFormat.class);

  • 相关阅读:
    2019-1-17水晶报表函数大全
    2019-1-17【水晶报表内功心法】--推拉之间
    2019-1-17水晶报表技巧总结【二】
    2019-1-16 水晶报表自动补空行
    2019-1-16水晶报表技巧总结【一】
    博客园添加访客人数
    2019-1-11存储过程的查看
    2019-1-11数据库重构
    lcx端口转发 linux版
    PentesterLab-From SQL Injection to Shell: PostgreSQL edition
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/6512482.html
Copyright © 2011-2022 走看看