一、 HBASE介绍


HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价的PCServer上搭建起大规模结构化存储集群。HBase具有近似最优的写性能(能使10性能饱和)和出色的读性能。Hadoop HDFS为HBase提供了高可靠性的底层存储支持。Hadoop MapReduce为HBase提供了高性能的计算能力。Zookeeper为HBase提供了稳定服务和failover机制。

二、 HBase特点

大、无模式、面向列、稀疏、数据多版本、数据类型单一。

三、 HBase的使用场景

Hbase使用场景:

Hbase使用场景:

Hbase使用场景:

Hbase使用场景:

Hbase使用场景:

  1. 大数据量存储, 大数据量高并发操作。
  2. 需要对数据随机读写操作。
  3. 读写访问均是非常简单的操作。

Hbase与HDFS对比:

Hbase使用场景:

Hbase使用场景:

Hbase使用场景:

Hbase使用场景:

  1. 两者都具有良好的容错性和扩展性,都可以扩展到成千上万节点
  2. HDFS适合批量处理场景
  3. 不支持数据随机查找
  4. 不适合增量数据处理
  5. 不支持数据更新

四、 HBASE基本组件

Client、Master、Region Server、zookeeper

  1. Zookeeper作用:通过选举,保证任何时候,集群中只有一个master。
  2. Master与RegionServers启动时会向ZooKeeper注册。

五、 HBASE访问接口

  1. Native Java API,最常规和高效的访问方式,适合Hadoop MapReduce Job并行批处理HBase表数据;
  2. HBase Shell,HBase 的命令行工具,最简单的接口,适合HBase管理使用;
  3. Thrift Gateway,利用Thrift 序列化技术,支持C++,PHP ,Python 等多种语言,适合其他异构系统在线访问HBase表数据;
  4. RESTGateway,支持REST风格的HttpAPI访问HBase,解除了语言限制;
  5. Pig,可以使用Pig Latin流式编程语言来操作HBase中的数据,和Hive类似,本质最终也是编译成MapReduce Job来处理HBase表数据,适合做数据统计;
  6. Hive,在Hive0.7.0及之后的版本支持HBase,可以使用类似SQL语言来访问HBASE。

六、 HBASE SHELL常用命令

HBase Shell是HBase的命令工具

  1. 创建表:create '表名称', '列名称1,'列名称2','列名称N'
  2. 添加记录:put'表名称', '行名称', '列名称:,'值'
  3. 查看记录:get'表名称,行名称
  4. 查看表中的记录总数:count'表名称'
  5. 删除记录:delete ' 表名','行名称','列名称'
  6. 删除一张表:先要屏蔽该表,才能对该表进行删除,第一步disable'表名称,第二步drop'表名称'
  7. 查看所有记录:scan"表名称"
  8. 查看某个表某个列中所有数据:scan"表名称",['列名称:]
  9. 更新记录:就是重写一遍进行覆盖

七、 HBASE API接口

HBaseConfiguration、HBaseAdmin、HTableDescriptor、HColumnDescriptor、HTable、Put、Get、Result、ResultScanner

八、 HBASE数据导入/导出

对hbase数据做备份和回复操作,可以直接使用HBASE提供的export和import工具。

  1. 使用Export命令将表数据写为文件;
  2. 使用lmport命令导入存储文件,恢复Hbase数据;
  3. 如果要按照指定格式导出hbase中数据并生成文本文件,目前只能通过MapReduce程序进行导出;

HDFS文本数据导入HBASE三种方案:

  1. 通过JAVAAPI进行导入;
  2. 通过工具( importtsv )导入;
  3. 通过MapReduce程序导入;
Last modification:January 12th, 2020 at 01:03 pm
如果觉得我的文章对你有用,请随意赞赏