2016-08-02 29 views
0

我开始学习hbase,我不明白它是如何线性缩放的。hbase是否真的线性缩放?

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

此外,我不明白我们是否需要将hbase安装在与hdfs相同的节点上或单独安装。如果我们与HDFS分开运行hbase,有什么好处。 至于我在逻辑上是在同一节点上安装HBase的簇与HDFS如下面的例子:

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

对我来说是最逻辑结构,因为如果我们从HMASTER分离HDFS主然后概率松动hbase集群将是两倍大。

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

+0

您可以联合HDFS,它消除了单个NN问题。请记住,NN仅用于元操作(例如,创建分区/ WAL),如果您正确配置它(只在足够大的WAL,分割和压缩大分区上旋转),hbase没有做太多的工作。 –

+0

我在断开hdfs主服务器的同时,试图从数据节点读取数据,并向我显示错误。据我了解,当我们从数据节点读取/写入某些内容时,他们首先向主节点询问一些信息。如果主节点死了,那么我们就无法使用集群。我可能是错的,但它是我的假设 – Alexandr

+0

是的你是对的,但这并不影响可扩展性,只有容错性。当你使用HA HDFS时,你不会有这个问题。见https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html –

回答

1

首先,如果您希望可以在任何支持的文件系统上安装HBase。不强制使用它在HDFS,但使用它与HDFS给的优势,它像 故障taulrence,数据复制,校验等 这就是为什么我们建议使用HBase的在HDFS

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

你可以参考https://www.mapr.com/blog/in-depth-look-hbase-architecture了解更多关于hdfs的信息。

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

希望这会消除你的疑惑。

+0

感谢您的解释 – Alexandr

+0

欢迎:-) @Alexandr –