当我们使用zookeeper来协调一组Hbase节点时,那么是zookeeper 可以与Hbase节点安置在相同的节点上,还是必须安装在单独的集群上? 另外一件我无法理解的事情是Zookeeper znodes何时创建以及什么 是动物园管理员znode的目的吗? Zookeeper官方网站称这些是zookeeper文件系统的一部分,所以究竟是什么 是用于存储的zookeeper znode?它是配置属性,应用程序数据还是究竟是什么内容?
答案 0 :(得分:3)
您可以在与hbase相同的节点上运行zookeeper,但出于性能原因,您可能希望在不同的节点上运行zookeeper。 hbase docs说,
您可以运行仅包含1个节点的ZooKeeper集合 生产时,建议您运行3,5的ZooKeeper集合 或7台机器;一个合奏的成员越多,就越容忍 合奏是主机故障。此外,运行奇数台机器。 如果成员数是偶数,则没有法定人数。 给每个ZooKeeper服务器大约1GB的RAM,如果可能的话,给它自己的 专用磁盘(专用磁盘是您可以做的最好的事情 确保高性能的ZooKeeper集合)。对于非常重负荷 集群,在不同的机器上运行ZooKeeper服务器 RegionServers(DataNodes和TaskTrackers)。
您可以看到hbase使用zookeeper here的一些方法。
答案 1 :(得分:2)
要回答以下问题,
我无法清楚地知道Zookeeper znodes何时 创建了zookeeper znode的目的是什么?那么zookeeper znode究竟用于存储什么呢?它是配置属性,应用程序数据还是究竟是什么内容?
Zookeeper ZNodes是Zookeeper状态的一部分,是Zookeeper的数据节点。它是一个文件夹以及存储数据。您可以在这些znode上存储少量数据。所有znode都存储数据,除了短暂的znode之外的所有znode都可以有子节点。 Zookeeper客户端可以通过ZooKeeper API操作znode和数据。阅读Zookeeper tutorial and client API examples文章以了解更多信息
Zookeeper对znode路径使用标准UNIX表示法。例如,znode路径/ A / B / C表示znode C的路径,其中C以B为父,B以A为父。
有三种类型的ZNode:
常规:客户端通过显式创建和删除它们来操作常规znode。
Ephemeral :客户端创建此类znode,他们要么显式删除它们,要么让系统在创建它们的会话终止时自动删除它们。
顺序:创建这些Znode时,会获得一个以其名称为后缀的唯一编号(序列)。
答案 2 :(得分:0)
Hbase主服务器创建zookeeper znode / hbase。然后将其用于hbase守护程序进行协调。甚至活动Hbase主站的名称也存储在此处。如果hbase主服务器死机,则备份hbase主服务器会覆盖znode的内容,以便客户端和区域服务器知道新的主服务器。除此之外,区域信息也在zookeeper znodes中维护。