工作中可能会有对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);

最新文章

  1. IT培训行业揭秘(五)
  2. CharacterEncodingFilter-Spring字符编码过滤器
  3. Top 15 不起眼却有大作用的 .NET功能集
  4. android APK更新
  5. 一条SQL查询MYSQL最大内存用量
  6. linux安装Mac的默认Monaco字体
  7. PHP基础之 string 字符串函数
  8. RF Analyzer for Android 安卓平台连接HackRF的App
  9. 数码管的封装实验 --- verilog
  10. Redis 实现高效不遗漏的事件封装
  11. YCM安装与配置
  12. Win 8.1 无法安装 .net framework3.5
  13. tmd123.com
  14. Chrome 自动填充的表单是淡黄色的背景怎么办!
  15. CodeForces 616A Comparing Two Long Integers
  16. java常见面试题(一)
  17. Grafana+Prometheus系统监控之SpringBoot
  18. UITableView!别再用代码计算行高了(一)
  19. ajax错误处理 500错误
  20. Linux文件名匹配和输出重定向--2019-4-24

热门文章

  1. 7.0不通过FileProvider解决调用相机给uri问题异常
  2. RxVolley报错:Caused by: java.lang.RuntimeException: RequestQueue-> DiskBasedCache cache dir error
  3. shell脚本查看服务器基本信息
  4. 我使用的Sublime插件及配置
  5. Selenium2+python自动化6-八种元素元素定位(Firebug和firepath)【转载】
  6. Vue.js入门第一课
  7. [BZOJ4990][Usaco2017 Feb]Why Did the Cow Cross the Road II dp
  8. Python的程序结构[2] -> 类/Class[6] -> 内建类 map
  9. 洛谷——P1991 无线通讯网
  10. spirng整合rmi