什么是 Apache HBase?
存储与查询 PB 级数据
什么是 HBase?
Apache HBase 是一种开源 NoSQL 分布式大数据存储。它可以实现对 PB 级数据的随机、严格一致的实时访问。HBase 可非常高效地处理大型稀疏数据集。
HBase 和 Apache Hadoop 及 Hadoop 生态系统无缝集成,使用 Amazon Elastic MapReduce (EMR) 文件系统或 EMRFS 在 Hadoop 分布式文件系统 (HDFS) 或 Amazon S3 顶部运行。HBase 可针对 Hadoop 作为 Apache MapReduce 框架的直接输入和输出,并且与 Apache Phoenix 搭配使用对 HBase 表进行类似于 SQL 的查询。
HBase 如何运作?
HBase 是一种列式非关系数据库。这意味着数据将被存储在单独列中,并且以唯一的行键编列索引。此架构可实现对单独行和列的快速检索,并高效扫描表中的全部单独列。数据和请求分布于 HBase 集群中的全部服务器,让您可以在毫秒内获得 PB 级数据的查询结果。在被用于存储非关系数据,并且通过 HBase API 进行访问时,HBase 可以表现出最高效率。Apache Phoenix 常被用作 HBase 顶部的 SQL 层,您可以使用熟悉的 SQL 语法插入、删除与查询存储在 HBase 中的数据。
HBase 的优点
可扩展
HBase 所采用的设计可以在数千个服务器中进行扩展,并且管理对 PB 级数据的访问。凭借 Amazon EC2 所具有的弹性,以及 Amazon S3 的可扩展性,HBase 可以处理对大型数据集的在线访问。
快速
HBase 通过在整个主机集群中分配来自应用程序的请求,提供对 PB 级数据的低延迟随机读取和写入。每个主机都具有访问 HDFS 和 S3 中数据的权限,并在毫秒间处理读取和写入请求。
容错能力
HBase 可以将存储在表中的数据分割到集群中的多个主机,单个主机的故障不会对其造成影响。由于数据被存储在 HDFS 或 S3 上,因此它会自动选择运行正常的主机来托管之前由故障主机处理的数据,而此类数据也会被自动转移到线上。
HBase 用例
FINRA(美国金融业监管局)是美国最大的独立安全监管机构,负责监控和管制金融交易行为。FINRA 使用 Amazon EMR,在 Amazon S3 上运行 Apache HBase,以便随机访问 3 万亿条记录(每天增加数十亿条),由一个交互式应用程序搜索和显示相关的市场事件。通过将存储和计算解耦,FINRA 可以将一个数据副本内存储在 Amazon S3 中并根据计算容量的需求调整集群的规模,而不用扩大其集群规模,以便在 HDFS 中存储数据的 3 个副本。这使他们每年能够节省 60% 多的成本,轻松扩展计算容量,并且将新 EC2 可用区中集群的恢复时间从数天缩减到 30 分钟以内。
Monster 是从事猎头业务的全球领导者,它利用 Amazon EMR 上的 Apache HBase 存储点击流和广告营销活动数据以进行下游分析。这样,他们便能够以单次曝光量为粒度监控不同的客户群在既定营销活动中的表现有何不同。Monster 的分析团队可轻松浏览各行内容来合计每位用户的查看量和点击量,从而确定营销活动。此外,他们还利用 Apache HBase 与 Apache Hadoop 生态系统的紧密集成。Monster 在独立的 Amazon EMR 集群上运行 Apache Hive,可以使用 SQL 查询其 HBase 表,这非常有助于执行额外分析,以及从 Apache HBase 向 Amazon Redshift 导出数据。
AWS 上的 HBase 和 Hadoop
Amazon EMR 提供最简单、最快速而且最具成本效益的托管 Hadoop 框架,让客户可以跨动态可扩展 EC2 实例处理大量数据。客户还可以在 EMR 中运行其他受欢迎的分布式框架,例如,Apache HBase、Hive、Spark、Presto 和 Flink 等。了解有关 Amazon EMR 的更多信息。