【问题标题】:HBase HDFS zookeeperHBase HDFS 动物园管理员
【发布时间】:2013-09-14 18:42:54
【问题描述】:

现在我正在学习 HBase。我像这样设置了我的 HBase 集群和 Hadoop 集群:

server1: Namenode HMaster
server2: datanode1 RegionServer1 HQuorumPeer
Server3: datanode2 RegionServer2 HQuorumPeer
Server4: datanode3 RegionServer3 HQuorumPeer

我有几个关于 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?   

【问题讨论】:

    标签: hadoop hbase apache-zookeeper


    【解决方案1】:

    所有 RegionServer 都必须在 Hadoop 集群中,这样才能使用 HDFS 来存储 数据,即使它会将数据存储到本地文件系统中,对吗?

    是的。 RegionServers 是负责在 HBase 集群中存储数据的守护进程。您将数据存储在 HBase 表中,这些表分布在集群中多个 RegionServer 上的许多区域中。虽然数据进入 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 节点和主节点?

    动物园管理员是负责协调幕后一切的人。它是用于维护配置信息、命名、提供分布式同步和提供组服务的集中式服务。分布式 HBase 设置依赖于正在运行的 ZooKeeper 集群。所有参与的节点和客户端都需要能够访问正在运行的 ZooKeeper 集合。 HBase 默认管理一个 ZooKeeper 集群。它作为 HBase 启动/停止过程的一部分启动和停止。但是,您也可以独立于 HBase 管理 ZooKeeper 集成,只需将 HBase 指向它应该使用的集群。您不必在所有节点上都运行 Zookeeper。只需确定一些适合您的集群的数字即可。这里需要注意的一点是,您应该始终使用 奇数 个 Zookeeper。

    与#3有关。我知道 HBase 使用 zookeeper 来恢复一次 regionServer 下来了。它具体是如何工作的?

    每个 RegionServer 都连接到 ZooKeeper,master 监视这些连接。 ZooKeeper 管理带有超时的心跳。因此,在超时时,HMaster 将区域服务器声明为已死,并开始恢复过程。在恢复过程中会发生以下情况:

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

    这个过程实际上有点复杂。您可以在此 here 上找到更多信息。我还建议您阅读 Lars 的《HBase The Definitive Guide》一书,以了解 HBase。

    HTH

    【讨论】:

    • 哇~你真是一位优秀的教授。你给了我很多细节和有用的信息。太感谢了。我只有一个问题:如果我只在Server2中设置HQuorumPeer; server3 宕机时,zookeeper 会知道吗?
    • 或者我只需要在hbase.zookeeper.quorum中设置一个zookeeper?
    • 不客气。我和你一样还在学习阶段:)。是的,它知道所有的服务器。
    • 这完全取决于您的需求。但是有一些大于 1 的数字很好。对于一个小集群,3 应该没问题。
    • 一个小建议。由于您刚刚开始使用 HBase,因此请使用 HBase 附带的 ZK 并正确熟悉所有内容。一旦您适应了创建一个具有 3 个或更多节点的单独 ZK 集群并将其与您的集群一起使用。
    猜你喜欢
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多