相关文章推荐
帅气的枇杷  ·  Lua 数据结构_牛客网·  1 月前    · 
完美的镜子  ·  RMI [Solved] ...·  2 月前    · 
买醉的闹钟  ·  【微星 ...·  5 月前    · 

HBase 是一个在 Hadoop Distributed File System (HDFS) 上运行的列式存储非关系数据库管理系统。 HBase 提供了存储稀疏数据集的容错方式,这类数据集在许多大数据用例中十分常见。 它非常适合实时数据处理或者对大量数据的随机读取/写入访问。

关系数据库系统 不同,HBase 不支持 SQL 一类的结构化查询语言;事实上,HBase 根本不是关系数据存储库。 HBase 应用程序以 Java™ 编写,更像是一款典型的 Apache MapReduce 应用程序。 HBase 确实支持以 Apache Avro 、REST 和 Thrift 编写应用程序。

HBase 系统设计为线性扩展。 它包括一系列由行和列组成的标准表,更像是传统数据库。 每个表必须有一个定义为主键的元素,且所有对 HBase 表的访问尝试都必须使用此主键。

Avro 作为组件,支持一系列丰富的原始数据类型(包括数字、二进制数据和字符串)以及多种复杂类型(包括数组、映射、枚举和记录)。 对于数据,也可以定义排序顺序。

HBase 依赖于 zookeeper 实现高性能协调。 zookeeper 内置到 HBase 中,但如果您正在运行生产集群,那么建议您配备一个与 HBase 集成的专用 ZooKeeper 集群。

HBase 非常适合与 Hive 结合使用,后者是用于大数据批处理的查询引擎,以支持容错性大数据应用程序。

一个 HBase 列代表对象的一个属性;如果该表存储的是您所在环境中服务器的诊断日志,则每行可能是一条日志记录,而一个典型列 可能是编写日志记录时的时间戳记,也可以是记录源自的服务器名称。

HBase 支持将许多属性组合到一个列族中,这样列族中的元素就会全部存储在一起。 这与行式存储关系数据库不同,其中指定行的所有列均存储在一起。 使用 HBase 时,必须预定义表模式,并指定列族。 然而,新列可随时添加到列族中,因此该模式十分灵活,且能适应不断变化的应用程序需求。

就像 HDFS 有一个 NameNode 和从属节点,而 MapReduce 有 JobTracker 和 TaskTracker 从属节点,HBase 的构建理念类似。 在 HBase 中,主节点管理集群,区域服务器存储表的各个部分并对数据执行处理。 同样,一些企业会对 HDFS 心存忧虑,因为 NameNode HBase 可能会因其主节点的丢失而丧失可用性。