HMaster vs Zookeeper - HBase

时间:2015-07-04 03:28:38

标签: hadoop hbase apache-zookeeper

我最近一直在做很多关于HBase的阅读,我对HMaster和Zookeeper在HBase架构中的作用感到困惑。

  • 当客户请求数据时,谁收到该请求?假设这是第一个请求。我理解后续请求可以直接发送到区域服务器。但要实现这一点,需要检索元文件的位置,然后需要在区域服务器中的特定元表上运行get或scan。

我问的原因是,如果我使用Java,我会使用HConnectionManager类来创建连接。看起来HConnectionManager已经有一个可用区域位置的缓存。构建缓存的原因是先前提出了一些请求,但如果缓存不存在则会发生这种情况,这是第一个请求。

谁接受了第一个HBase请求,它是动物园管理员的法定人数吗?我们正在为HBaseConfiguration类提交hbase-site.xml文件。

  • 我对如何定义"客户端"?感到有些困惑。

我读到的另一件事是元信息被缓存在"客户端",即使在HBase REST的情况下也是如此?这里的客户端是HMaster还是正在进行REST调用的实际用户。如果是这样,如果元数据暴露给客户端,它就不会暴露安全威胁。

2 个答案:

答案 0 :(得分:0)

客户端连接到ZooKeeper以获取最新状态。 HBaseMaster的作用是确保此列表正确(即在启动时将区域分配给regionservers,失败等)。客户只会出于管理目的联系HBaseMaster,例如创建表,更改其结构等(通过HBaseAdmin类)。您可以阅读更多相关信息here

在HBase REST的情况下,客户端向REST服务器发送REST请求,该服务器内部拥有HBase客户端

答案 1 :(得分:0)

以HBase-1.0.1.1为基础回答:

1.当客户请求数据时,谁会收到该请求?

a)查看zookeeper的hbase:元区域位置和缓存元区域位置以供将来使用。

b)扫描区域服务器中的hbase:meta并获取我们需要的区域位置。客户端还缓存区域位置。

c)请求区域服务器。

2.谁接受了第一个HBase请求,它是动物园管理员的法定人数吗?

如果全部是第一个,则为是,否则可能是元区域或用户表区域。

<强> 3.security

你可以使用kerberos。它支持HBase。