一、 HBASE介绍
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价的PCServer上搭建起大规模结构化存储集群。HBase具有近似最优的写性能(能使10性能饱和)和出色的读性能。Hadoop HDFS为HBase提供了高可靠性的底层存储支持。Hadoop MapReduce为HBase提供了高性能的计算能力。Zookeeper为HBase提供了稳定服务和failover机制。
二、 HBase特点
大、无模式、面向列、稀疏、数据多版本、数据类型单一。
三、 HBase的使用场景
Hbase使用场景:
Hbase使用场景:
Hbase使用场景:
Hbase使用场景:
Hbase使用场景:
- 大数据量存储, 大数据量高并发操作。
- 需要对数据随机读写操作。
- 读写访问均是非常简单的操作。
Hbase与HDFS对比:
Hbase使用场景:
Hbase使用场景:
Hbase使用场景:
Hbase使用场景:
- 两者都具有良好的容错性和扩展性,都可以扩展到成千上万节点
- HDFS适合批量处理场景
- 不支持数据随机查找
- 不适合增量数据处理
- 不支持数据更新
四、 HBASE基本组件
Client、Master、Region Server、zookeeper
- Zookeeper作用:通过选举,保证任何时候,集群中只有一个master。
- Master与RegionServers启动时会向ZooKeeper注册。
五、 HBASE访问接口
- Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据;
- HBase Shell,HBase 的命令行工具,最简单的接口,适合HBase管理使用;
- Thrift Gateway,利用Thrift 序列化技术,支持C++,PHP ,Python 等多种语言,适合其他异构系统在线访问HBase表数据;
- RESTGateway,支持REST风格的HttpAPI访问HBase,解除了语言限制;
- Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计;
- Hive,在Hive0.7.0及之后的版本支持HBase,可以使用类似SQL语言来访问HBASE。
六、 HBASE SHELL常用命令
HBase Shell是HBase的命令工具
- 创建表:create '表名称', '列名称1,'列名称2','列名称N'
- 添加记录:put'表名称', '行名称', '列名称:,'值'
- 查看记录:get'表名称,行名称
- 查看表中的记录总数:count'表名称'
- 删除记录:delete ' 表名','行名称','列名称'
- 删除一张表:先要屏蔽该表,才能对该表进行删除,第一步disable'表名称,第二步drop'表名称'
- 查看所有记录:scan"表名称"
- 查看某个表某个列中所有数据:scan"表名称",['列名称:]
- 更新记录:就是重写一遍进行覆盖
七、 HBASE API接口
HBaseConfiguration、HBaseAdmin、HTableDescriptor、HColumnDescriptor、HTable、Put、Get、Result、ResultScanner
八、 HBASE数据导入/导出
对hbase数据做备份和回复操作,可以直接使用HBASE提供的export和import工具。
- 使用Export命令将表数据写为文件;
- 使用lmport命令导入存储文件,恢复Hbase数据;
- 如果要按照指定格式导出hbase中数据并生成文本文件,目前只能通过MapReduce程序进行导出;
HDFS文本数据导入HBASE三种方案:
- 通过JAVAAPI进行导入;
- 通过工具( importtsv )导入;
- 通过MapReduce程序导入;