HBase 的优点、缺点和性能瓶颈
HBase 架构始终具有“单点故障”功能,并且没有与之相关的异常处理机制。
这里我们来了解一下HBase的优缺点以及性能瓶颈有哪些:
HBase 中的性能瓶颈
- 在任何生产环境中,HBase 都运行在超过 5000 个节点的集群中,只有 Hmaster 充当所有从属 Region 服务器的主服务器。如果 Hmaster 发生故障,则需要很长时间才能恢复。即使客户端能够连接 Region 服务器。也可以有另一个主服务器,但只有一个主服务器处于活动状态。如果主 Hmaster 发生故障,则需要很长时间才能激活第二个 Hmaster。因此,Hmaster 是一个性能瓶颈。
- 在HBase中,我们无法实现任何跨数据操作和连接操作,当然,我们可以使用 映射简化,这将花费大量的设计和开发时间。表连接操作在 HBase 中很难执行。在某些用例中,不可能创建与 HBase 中存在的表相关的连接操作
- 当我们想要将数据从 RDBMS 外部源迁移到 HBase 服务器时,HBase 需要重新设计。然而,这个过程需要很长时间。
- HBase 查询起来确实很困难。我们可能需要将 HBase 与一些 SQL 层状 阿帕奇 phoenix,我们可以在其中编写查询来触发 HBase 中的数据。在 HBase 之上使用 Apache Phoenix 确实很棒。
- HBase 的另一个缺点是,我们不能在表中拥有多个索引,只有行键列作为主键。因此,当我们想要搜索多个字段或除行键之外的其他字段时,性能会很慢。我们可以通过编写 MapReduce 代码、集成来克服这个问题 Apache SOLR 以及 Apache Phoenix。
- 不同用户访问 HBase 数据的安全性改进缓慢。
- HBase 不完全支持部分键
- HBase 仅允许每个表进行一种默认排序
- 在 HBase 中存储大型二进制文件非常困难
- HBase的存储会限制实时查询和排序
- 键查找和范围查找在使用键值搜索表内容方面,它将限制实时执行的查询
- HBase 中没有默认索引。程序员必须定义几行代码或脚本才能在 HBase 中执行索引功能
- 硬件要求和内存块分配方面成本昂贵。
- 应该为分布式集群环境安装更多服务器(例如每个服务器用于 NameNode、DataNode、 动物园管理员和区域服务器)
- 性能方面,它需要高内存的机器
- 成本和维护方面也更高
HBase的优势
在这里,我们将了解 HBase 的优点/好处:
- 可以在 HDFS 文件存储上存储大型数据集,并聚合和分析 HBase 表中的数十亿行
- 在HBase中,数据库可以共享
- Opera与传统关系模型相比,数据读取和处理等操作所需的时间较少
- 随机读写操作
- 对于在线分析操作,HBase 被广泛使用。
- 例如:在银行应用中如ATM机中的实时数据更新,可以使用HBase。
HBase 的缺点
以下是 HBase 的重要缺点/局限性:
- 我们不能指望完全用 HBase 来替代传统模型。HBase 无法支持一些传统模型的功能
- HBase 无法执行类似 SQL 的功能。它不支持 SQL 结构,因此不包含任何查询优化器
- HBase 是 CPU 和内存密集型的,具有大量顺序输入或输出访问,而 Map Reduce 作业主要是输入或输出,受固定内存限制。HBase 与 Map-Reduce 作业集成将导致不可预测的延迟
- HBase 与 pig 集成 蜂房 作业导致集群出现一些时间内存问题
- 在共享集群环境中,设置需要每个节点分配较少的任务槽来满足 HBase CPU 需求