Hbase总结

一.什么是HBase?

他是一个开源的,分布式的,版本化的,非关系型数据库.

二.为什么要用HBase?

Mysql首先磁盘级数据库,存储和读取能力比较弱,上百万数据的查询就会造成延时
Hive:hive只能做分析,不能做实时查询(即实时性业务处理)
Hbase:PB级数据,1024G=T 1024T=p毫秒级结果,针对于分布式文件系统进行数据的存储和即时查询.
HBase特点:

1.海量存储:pB级别的数据可以再廉价的PC存储的情况下载几百毫秒内返回数据
2.列式存储:Hbase是使用列族来存储数据的,列族下有很多列,列族在穿件表的时候就必须指定.orc列式存储.
3.极易扩展:一个基于上层处理能力(RegionServer)的扩展,一个是基于存储的扩展(HBFS)
4.高并发:目前大部分使用的都是HBase架构,都是采用的廉价的pc.单个IO的延迟并不小,这里的高并发,是指并发的情况下,HBase的单个IO延迟下降并不多,能获得高并发,低延迟的服务
5.稀疏

稀疏主要是针对Hbase列的灵活性,在列族中,你可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间的。
**HBase组成:**Client,Zookeeper,Master,HRegionServer、HDFS
HBase启动服务bin/start-hbase.sh
停止服务:bin/stop-hbase.sh
进入HBase客户端命令行
bin/hbase shell
一些常用命令:
查看数据库中有哪些表:List

建表:create ‘student’,‘info’ student表明,info列族’’

插入数据:put ‘student’,‘1001’,‘info:sex’,‘male’

查看表结构:describe ‘表名’

查看表中数据:
hbase(main):008:0> scan ‘student’
hbase(main):009:0> scan ‘student’,{STARTROW => ‘1001’, STOPROW => ‘1001’}
hbase(main):010:0> scan ‘student’,{STARTROW => ‘1001’}
scan ‘emp’,{STARTROW => 0, STOPROW => 50}

删除某个rowkey的全部数据:deleteall ‘student’,‘1001’

删除某rowkey的某一列数据:delete ‘student’,‘1002’,‘info:sex’

删除表 向disable状态: disable ‘student’ 再drop: drop ‘student’

相关操作:
1.通过在idea中操作linux中的hbase,向hbase中添加表,并且加入数据,查询表中的数据,判断表是否存在,删除表等操作.
参考:大数据技术之HBase.doc这个文档 在java-day53
Idea案例在 hbase中的pm下的HbaseDemo这个类中
2.Mapreduce通过Hbase的相关操作JavaAPI,我们可以实现伴随HBase操作的MapReduce过程,比如使用MapReduce将数据从本地导入到HBase的表中,比如我们从HBase中读取一些原始数据后使用MapReduce做数据分析
相关案例:
1.运行官方MapReduce
案例一:统计Student表中有多少行数据
$ /opt/module/hadoop-2.7.2/bin/yarn jar lib/hbase-server-1.3.1.jar rowcounter student
案例二:使用MapReduce将本地数据导入到HBase中
(1)在本地创建一个tsv格式的文件:fruit.tsv
(2)创建HBase表
(3)在HDFS中创建input_fruit文件夹并上传fruit.tsv文件
(4)执行MapReduce到HBase的fruit表中
$ /opt/module/hadoop-2.7.2/bin/yarn jar lib/hbase-server-1.3.1.jar importtsv
-Dimporttsv.columns=HBASE_ROW_KEY,info:name,info:color fruit
hdfs://master:8020/fruit.tsv

(5)使用scan命令查看导入后的结果
(6)总结本地文件先到hdfs再到hbase中
2自定义MapReduce
目标:将fruit表中的一部分数据,通过MR迁入到fruit_mr表中。
改案例位于idea中的hbase项目下的pm1包下
打包运行任务
$ /opt/module/hadoop-2.7.2/bin/yarn jar jar包所在位置
mr1.Fruit2FruitMRRunner(入口函数)
提示:运行任务前,如果待数据导入的表不存在,则需要提前创建。

2.目标:实现将HDFS中的数据写入到HBase表中。
打包运行
$ /opt/module/hadoop-2.7.2/bin/yarn jar hbase-0.0.1-SNAPSHOT.jar com.atguigu.hbase.mr2.Txt2FruitRunner
提示:运行任务前,如果待数据导入的表不存在,则需要提前创建之。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值