HBase HDFS zookeeper

use*_*504 5 hadoop hbase apache-zookeeper

现在我正在学习HBase.我设置了我的HBase集群和Hadoop集群,如下所示:

server1: Namenode HMaster
server2: datanode1 RegionServer1 HQuorumPeer
Server3: datanode2 RegionServer2 HQuorumPeer
Server4: datanode3 RegionServer3 HQuorumPeer
Run Code Online (Sandbox Code Playgroud)

我有几个关于HBase集群的问题:

1: All RegionServers must be in the Hadoop Cluster so it can use HDFS to store 
   data, even though it will store data into local file system, right?
2: What does RegionServer do? Does the HMaster give the job to all RegionServeres 
   and let them running parallel, like tasktracker in datanode? 
3: What does zookeeper do? Do I need to setup zookeeper in all RegionServers 
   nodes and the master node? 
4: It is related to #3. I know HBase uses zookeeper to recovery once regionServer 
   is down. How does it specific work?   
Run Code Online (Sandbox Code Playgroud)

Tar*_*riq 17

所有RegionServers必须位于Hadoop集群中,因此它可以使用HDFS存储数据,即使它将数据存储到本地文件系统中,对吧?

是.RegionServers是负责将数据存储在HBase集群中的守护进程.您将数据存储在HBase表中,这些表遍布集群中的多个RegionServers上的许多区域.虽然数据进入RegionServers,但它实际上存储在HDFS中.但如果您使用的是独立设置,则不使用HDFS.数据直接存储在本地FS中.它类似于任何DB和FS.以MSQL和ext3为例.是的,所有HDFS数据都存储在您的磁盘上.你不能直接看到它.

RegionServer做什么?HMaster是否为所有RegionServeres提供了工作并让它们并行运行,比如datanode中的tasktracker?

正如上面的注释中所指定的,RegionServer是实际将数据存储在HBase集群中的守护程序.对不起,我没有完全理解这个问题的第二部分.你喜欢datanode中的tasktracker是什么意思?在HBase集群中,HMaster是守护程序,它负责监视集群中的所有RegionServer实例,并且是所有元数据更改的接口.它的工作是监督和管理.Regionservers不像TaskTrackers那样运行任何工作.它们只存储数据,并负责服务和管理区域等内容.

动物园管理员做什么?我是否需要在所有RegionServers节点和主节点中设置zookeeper?

Zookeeper是协调幕后一切的人.它是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务.分布式HBase设置取决于正在运行的ZooKeeper集群.所有参与节点和客户端都需要能够访问正在运行的ZooKeeper集合.HBase默认管理ZooKeeper集群.它作为HBase启动/停止过程的一部分启动和停止.但是,您也可以独立于HBase管理ZooKeeper集合,并在它应该使用的集群中指向HBase.您不必在所有节点上运行Zookeepers.只需确定一些适合您的群集的号码.这里要注意的一件事是你应该总是使用奇数的Zookeepers.

它与#3有关.我知道一旦regionServer关闭,HBase就会使用zookeeper来恢复.具体如何运作?

每个RegionServer都连接到ZooKeeper,主服务器监视这些连接.ZooKeeper通过超时管理心跳.因此,在超时时,HMaster将区域服务器声明为已死,并启动恢复过程.在恢复过程中发生以下事情:

  • 识别节点已关闭:节点可以停止响应,因为它过载或者因为它已经死了.
  • 恢复正在进行的写入:正在读取提交日志并恢复未刷新的编辑.
  • 重新分配区域:区域服务器以前处理一组区域.必须将此集重新分配给其他区域服务器,具体取决于其各自的工作负载.

这个过程实际上涉及更多.你可以在这里找到更多相关信息.我还建议你阅读Lars的HBase The Definitive Guide一书,以便掌握HBase.

HTH

  • 哇〜你真是一位优秀的教授.你给我很多细节和有用的信息.非常感谢.我只有一个问题:如果我只在Server2中设置HQuorumPeer; 当server3关闭时,zookeeper会知道吗? (2认同)