2

我开始学习 hbase,但我不明白它是如何线性扩展的。

问题是在安装 hbase 之前,您必须拥有一个 hdfs 集群。HDFS集群有一个master节点,在整个集群中只能是一个,所以它是一个瓶颈。当然,我们可以再运行 1 个主节点(也可以只运行 1 个主节点),但它将处于备用状态。据我了解,hbase 使用 HDFS 集群来存储数据。所以,对我来说,运行多个 Hmaster 从逻辑上讲是没有意义的,因为所有请求都将发送到 hdfs 活动 master,如果我们有太多请求,性能会受到影响。

另外我不明白我们是否需要将 hbase 安装在具有 hdfs 的相同节点上或单独安装。如果我们将 hbase 与 HDFS 分开运行有什么好处。对我来说,在逻辑上使用 hdfs 将 hbase 集群安装在相同的节点上,如下例所示:

HDFS active master - HMaster
HDFS standby master - HMaster backup
HDFS Data node - HRegion server

对我来说,这是最合乎逻辑的结构,因为如果我们将 hdfs master 与 hmaster 分开,那么松散 hbase 集群的概率将大两倍。

如果有人可以分享有关所有这些东西的信息,我将非常高兴。因为我真的不明白 hbase 是如何线性扩展的,以及它是如何与 hdfs 一起工作的。

4

1 回答 1

3

首先,如果您愿意,您可以在任何受支持的文件系统上安装 HBase。在 Hdfs 上使用它不是强制性的,但将它与 Hdfs 一起使用会带来优势,例如 Fault taulrence、数据复制、校验和等。这就是为什么建议在 hdfs 上使用 HBase

此外,虽然hdfs中存在namenode的瓶颈,但这并不影响HBase的效率,因为并不是每个操作内部工作都依赖于hdfs的namenode,例如Region服务器为读取和写入提供数据。访问数据时,客户端直接与 HBase RegionServers 通信,而 Region 分配、DDL(创建、删除表)操作由 HBase Master 进程处理。这意味着数据的读取和写入独立于表的创建和删除。

有关 hdfs 的更多详细信息,您可以参考https://www.mapr.com/blog/in-depth-look-hbase-architecture

另请参阅 lars george 在 HBase 上的网络研讨会。https://m.youtube.com/watch?v=_HLoH_PgrLk

希望这能消除您的疑虑。

于 2016-08-03T03:03:20.787 回答