我开始学习hbase,我不明白它是如何线性扩展的。
问题是在安装hbase之前,你必须拥有一个hdfs集群。 HDFS集群有一个主节点,在整个集群中只能有一个节点,因此它是一个瓶颈。当然,我们可以再运行1个主节点(可能只运行1个主节点),但它将处于待机状态。 据我所知,hbase使用HDFS集群来存储数据。因此,对我而言,从逻辑上讲,运行多个Hmaster是没有意义的,因为所有请求都将转到hdfs active master,如果我们有太多请求,性能会受到影响。
另外,我不能正确理解我们是否需要使用hdfs或单独在相同节点上安装hbase。如果我们从HDFS单独运行hbase,有什么好处。 至于我,逻辑上用hdfs在相同的节点上安装hbase集群,如下例所示:
HDFS active master - HMaster
HDFS standby master - HMaster backup
HDFS Data node - HRegion server
对我而言,它是最逻辑的结构,因为如果我们将hdfs master与hmaster分开,那么松散hbase集群的概率将会大两倍。
如果有人可以分享有关所有这些内容的信息,我将非常高兴。因为我真的不明白hbase如何线性扩展以及如何使用hdfs。
答案 0 :(得分:3)
首先,如果您希望可以在任何支持的文件系统上安装HBase。它不是必须在Hdfs上使用它,而是与Hdfs一起使用它就像它一样 故障排除,数据复制,校验和等 这就是为什么建议使用HBase over 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
希望这能清除你的疑虑。