HBase如何使用ZooKeeper?
How HBase uses ZooKeper?
我知道 ZooKeeper 是提供分布式平台 synchronization.But HBase 如何使用 ZooKeeper?
Apache ZooKeeper 是一个用于分布式协调的 client/server 系统,它公开了一个类似于文件系统的接口,其中每个节点(称为 znode)都可以包含数据和一组子节点。每个 znode 都有一个名称,可以使用类似文件系统的路径来识别(例如,/root-znode/sub-znode/my-znode)。
在 Apache HBase 中,ZooKeeper 在 Master 和 RegionServer 之间协调、通信和共享状态。 HBase 的设计策略是仅将 ZooKeeper 用于瞬态数据(即用于协调和状态通信)。因此,如果删除 HBase 的 ZooKeeper 数据,只会影响临时操作 – 数据可以继续写入和读取 to/from HBase.
目前,hbase 客户端通过询问 zookeeper 来找到要连接的集群。客户端唯一需要的配置是连接到的 zk quorum。 Masters 和 hbase 从节点(regionservers)都向 zk 注册自己。如果他们的 znode 消失了,master 或 regionserver 被认为丢失并开始修复
Apache ZooKeeper is a client/server system for distributed
coordination that exposes an interface similar to a filesystem, where
each node (called a znode) may contain data and a set of children.
Each znode has a name and can be identified using a filesystem-like
path (for example, /root-znode/sub-znode/my-znode).
In Apache HBase, ZooKeeper coordinates, communicates, and shares state
between the Masters and RegionServers. HBase has a design policy of
using ZooKeeper only for transient data (that is, for coordination and
state communication). Thus if the HBase’s ZooKeeper data is removed,
only the transient operations are affected — data can continue to be
written and read to/from HBase.
来自 cloudera
在分布式系统中
在分布式系统中 HBase 将 table 拆分为区域服务器 并使用两个特殊的 tables , -ROOT-
和 .META.
,以查找托管各种 table 区域的位置。
与 HBase 中的所有 table 一样,-ROOT-
和 .META
。也分为
地区。 -ROOT-
和.META.
都是特殊的table; -ROOT-
永远不会分裂成一个以上的区域。 .META.
可以根据需要分成任意多个区域(与其他 table 一样)。
当客户端应用程序想要访问特定行时,它会访问 -ROOT-
table 并询问在哪里可以找到负责特定行的区域。 -ROOT-
提供此信息并重定向到 .META.
table 的区域。
然后:
如何找到 -ROOT-
table?
HBase 系统的入口点由另一个名为 ZooKeeper 的系统提供。
在本地系统中
在本地 DataNode 系统中你不需要 ZooKeeper
结论
ZooKeeper是HBase在分布式Regional系统中用来寻找-ROOT-
table。
见https://blogs.apache.org/hbase/entry/hbase_who_needs_a_master
我知道 ZooKeeper 是提供分布式平台 synchronization.But HBase 如何使用 ZooKeeper?
Apache ZooKeeper 是一个用于分布式协调的 client/server 系统,它公开了一个类似于文件系统的接口,其中每个节点(称为 znode)都可以包含数据和一组子节点。每个 znode 都有一个名称,可以使用类似文件系统的路径来识别(例如,/root-znode/sub-znode/my-znode)。
在 Apache HBase 中,ZooKeeper 在 Master 和 RegionServer 之间协调、通信和共享状态。 HBase 的设计策略是仅将 ZooKeeper 用于瞬态数据(即用于协调和状态通信)。因此,如果删除 HBase 的 ZooKeeper 数据,只会影响临时操作 – 数据可以继续写入和读取 to/from HBase.
目前,hbase 客户端通过询问 zookeeper 来找到要连接的集群。客户端唯一需要的配置是连接到的 zk quorum。 Masters 和 hbase 从节点(regionservers)都向 zk 注册自己。如果他们的 znode 消失了,master 或 regionserver 被认为丢失并开始修复
Apache ZooKeeper is a client/server system for distributed coordination that exposes an interface similar to a filesystem, where each node (called a znode) may contain data and a set of children. Each znode has a name and can be identified using a filesystem-like path (for example, /root-znode/sub-znode/my-znode).
In Apache HBase, ZooKeeper coordinates, communicates, and shares state between the Masters and RegionServers. HBase has a design policy of using ZooKeeper only for transient data (that is, for coordination and state communication). Thus if the HBase’s ZooKeeper data is removed, only the transient operations are affected — data can continue to be written and read to/from HBase.
来自 cloudera
在分布式系统中
在分布式系统中 HBase 将 table 拆分为区域服务器 并使用两个特殊的 tables , -ROOT-
和 .META.
,以查找托管各种 table 区域的位置。
与 HBase 中的所有 table 一样,-ROOT-
和 .META
。也分为
地区。 -ROOT-
和.META.
都是特殊的table; -ROOT-
永远不会分裂成一个以上的区域。 .META.
可以根据需要分成任意多个区域(与其他 table 一样)。
当客户端应用程序想要访问特定行时,它会访问 -ROOT-
table 并询问在哪里可以找到负责特定行的区域。 -ROOT-
提供此信息并重定向到 .META.
table 的区域。
然后:
如何找到 -ROOT-
table?
HBase 系统的入口点由另一个名为 ZooKeeper 的系统提供。
在本地系统中
在本地 DataNode 系统中你不需要 ZooKeeper
结论
ZooKeeper是HBase在分布式Regional系统中用来寻找-ROOT-
table。
见https://blogs.apache.org/hbase/entry/hbase_who_needs_a_master