• 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);

  • 相关阅读:
    Eureka 原理圖
    RabbitMQ 介紹
    rabbitmq-3.5.1-安裝
    MyBatis 基础入门
    CSS
    程序员必会算法-KMP算法
    编程这些年
    排序算法之直接插入排序
    排序算法之选择排序
    排序算法之冒泡排序
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/6512482.html
Copyright © 2020-2023  润新知