<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>简单之美 &#187; Tag &#187; ZooKeeper</title>
	<atom:link href="http://shiyanjun.cn/archives/tag/zookeeper/feed" rel="self" type="application/rss+xml" />
	<link>http://shiyanjun.cn</link>
	<description>简单之美，难得简单，享受简单的唯美。</description>
	<lastBuildDate>Wed, 04 Mar 2026 07:04:53 +0000</lastBuildDate>
	<language>zh-CN</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.9.2</generator>
	<item>
		<title>ZooKeeper应用案例</title>
		<link>http://shiyanjun.cn/archives/492.html</link>
		<comments>http://shiyanjun.cn/archives/492.html#comments</comments>
		<pubDate>Mon, 04 Nov 2013 15:47:19 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Hadoop/Hive/ZooKeeper]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[ZooKeeper]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=492</guid>
		<description><![CDATA[<p>我们通过学习借鉴，哪些项目或应用都使用了ZooKeeper，可以了解我们的应用使用ZooKeeper是否能真正地带来价值，当然，有些项目可能也未必非常适合使用ZooKeeper，我们要批判地学习、借鉴和吸收。
下面是一些使用了ZooKeeper实现的案例：

HDFS HA(QJM)

Hadoop 2.x之前的版本，HDFS集群中Namenode是整个集群的中央元数据存储和服务节点，它存在SPOF的问题。在2.x版本中，提出了各种HA方案，避免Namenode的SPOF问题，其中基于QJM（Quorum Journal Manager）的方案可以解决这个问题：使用QJM的方案中，HDFS集群中存在两类节点，一类是Namenode节点（包括Active状态的Namenode，和Standby状态的Namenode），另一类是JournalNode，进行容错。当Active状态的Namenode元数据发生改变时，通过JournalNode进程（ZooKeeper集群中）来监视这种变化，然后同步到Standby状态的Namenode节点（实际上同步的是EditLog镜像文件内容的变更）。
当Active状态的节点发生故障后，Standby节点的Namenode自动切换，并接管HDFS集群中Active状态Namenode的服务，用来向客户端提供元数据服务。</p>]]></description>
	<p>我们通过学习借鉴，哪些项目或应用都使用了ZooKeeper，可以了解我们的应用使用ZooKeeper是否能真正地带来价值，当然，有些项目可能也未必非常适合使用ZooKeeper，我们要批判地学习、借鉴和吸收。
下面是一些使用了ZooKeeper实现的案例：

HDFS HA(QJM)

Hadoop 2.x之前的版本，HDFS集群中Namenode是整个集群的中央元数据存储和服务节点，它存在SPOF的问题。在2.x版本中，提出了各种HA方案，避免Namenode的SPOF问题，其中基于QJM（Quorum Journal Manager）的方案可以解决这个问题：使用QJM的方案中，HDFS集群中存在两类节点，一类是Namenode节点（包括Active状态的Namenode，和Standby状态的Namenode），另一类是JournalNode，进行容错。当Active状态的Namenode元数据发生改变时，通过JournalNode进程（ZooKeeper集群中）来监视这种变化，然后同步到Standby状态的Namenode节点（实际上同步的是EditLog镜像文件内容的变更）。
当Active状态的节点发生故障后，Standby节点的Namenode自动切换，并接管HDFS集群中Active状态Namenode的服务，用来向客户端提供元数据服务。</p>			<content:encoded><![CDATA[<p>我们通过学习借鉴，哪些项目或应用都使用了ZooKeeper，可以了解我们的应用使用ZooKeeper是否能真正地带来价值，当然，有些项目可能也未必非常适合使用ZooKeeper，我们要批判地学习、借鉴和吸收。
下面是一些使用了ZooKeeper实现的案例：

HDFS HA(QJM)

Hadoop 2.x之前的版本，HDFS集群中Namenode是整个集群的中央元数据存储和服务节点，它存在SPOF的问题。在2.x版本中，提出了各种HA方案，避免Namenode的SPOF问题，其中基于QJM（Quorum Journal Manager）的方案可以解决这个问题：使用QJM的方案中，HDFS集群中存在两类节点，一类是Namenode节点（包括Active状态的Namenode，和Standby状态的Namenode），另一类是JournalNode，进行容错。当Active状态的Namenode元数据发生改变时，通过JournalNode进程（ZooKeeper集群中）来监视这种变化，然后同步到Standby状态的Namenode节点（实际上同步的是EditLog镜像文件内容的变更）。
当Active状态的节点发生故障后，Standby节点的Namenode自动切换，并接管HDFS集群中Active状态Namenode的服务，用来向客户端提供元数据服务。</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/492.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ZooKeeper架构设计及其应用要点</title>
		<link>http://shiyanjun.cn/archives/474.html</link>
		<comments>http://shiyanjun.cn/archives/474.html#comments</comments>
		<pubDate>Fri, 01 Nov 2013 05:03:45 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Hadoop/Hive/ZooKeeper]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[架构]]></category>
		<category><![CDATA[ZooKeeper]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=474</guid>
		<description><![CDATA[<p>ZooKeeper是一个开源的分布式服务框架，它是Apache Hadoop项目的一个子项目，主要用来解决分布式应用场景中存在的一些问题，如：统一命名服务、状态同步服务、集群管理、分布式应用配置管理等，它支持Standalone模式和分布式模式，在分布式模式下，能够为分布式应用提供高性能和可靠地协调服务，而且使用ZooKeeper可以大大简化分布式协调服务的实现，为开发分布式应用极大地降低了成本。
总体架构
ZooKeeper分布式协调服务框架的总体架构，如图所示：

ZooKeeper集群由一组Server节点组成，这一组Server节点中存在一个角色为Leader的节点，其他节点都为Follower。当客户端Client连接到ZooKeeper集群，并且执行写请求时，这些请求会被发送到Leader节点上，然后Leader节点上数据变更会同步到集群中其他的Follower节点。
Leader节点在接收到数据变更请求后，首先将变更写入本地磁盘，以作恢复之用。当所有的写请求持久化到磁盘以后，才会将变更应用到内存中。
ZooKeeper使用了一种自定义的原子消息协议，在消息层的这种原子特性，保证了整个协调系统中的节点数据或状态</p>]]></description>
	<p>ZooKeeper是一个开源的分布式服务框架，它是Apache Hadoop项目的一个子项目，主要用来解决分布式应用场景中存在的一些问题，如：统一命名服务、状态同步服务、集群管理、分布式应用配置管理等，它支持Standalone模式和分布式模式，在分布式模式下，能够为分布式应用提供高性能和可靠地协调服务，而且使用ZooKeeper可以大大简化分布式协调服务的实现，为开发分布式应用极大地降低了成本。
总体架构
ZooKeeper分布式协调服务框架的总体架构，如图所示：

ZooKeeper集群由一组Server节点组成，这一组Server节点中存在一个角色为Leader的节点，其他节点都为Follower。当客户端Client连接到ZooKeeper集群，并且执行写请求时，这些请求会被发送到Leader节点上，然后Leader节点上数据变更会同步到集群中其他的Follower节点。
Leader节点在接收到数据变更请求后，首先将变更写入本地磁盘，以作恢复之用。当所有的写请求持久化到磁盘以后，才会将变更应用到内存中。
ZooKeeper使用了一种自定义的原子消息协议，在消息层的这种原子特性，保证了整个协调系统中的节点数据或状态</p>			<content:encoded><![CDATA[<p>ZooKeeper是一个开源的分布式服务框架，它是Apache Hadoop项目的一个子项目，主要用来解决分布式应用场景中存在的一些问题，如：统一命名服务、状态同步服务、集群管理、分布式应用配置管理等，它支持Standalone模式和分布式模式，在分布式模式下，能够为分布式应用提供高性能和可靠地协调服务，而且使用ZooKeeper可以大大简化分布式协调服务的实现，为开发分布式应用极大地降低了成本。
总体架构
ZooKeeper分布式协调服务框架的总体架构，如图所示：

ZooKeeper集群由一组Server节点组成，这一组Server节点中存在一个角色为Leader的节点，其他节点都为Follower。当客户端Client连接到ZooKeeper集群，并且执行写请求时，这些请求会被发送到Leader节点上，然后Leader节点上数据变更会同步到集群中其他的Follower节点。
Leader节点在接收到数据变更请求后，首先将变更写入本地磁盘，以作恢复之用。当所有的写请求持久化到磁盘以后，才会将变更应用到内存中。
ZooKeeper使用了一种自定义的原子消息协议，在消息层的这种原子特性，保证了整个协调系统中的节点数据或状态</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/474.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ZooKeeper-3.3.4集群安装配置</title>
		<link>http://shiyanjun.cn/archives/469.html</link>
		<comments>http://shiyanjun.cn/archives/469.html#comments</comments>
		<pubDate>Thu, 31 Oct 2013 02:46:14 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[Hadoop/Hive/ZooKeeper]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[ZooKeeper]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=469</guid>
		<description><![CDATA[<p>ZooKeeper是一个分布式开源框架，提供了协调分布式应用的基本服务，它向外部应用暴露一组通用服务——分布式同步（Distributed Synchronization）、命名服务（Naming Service）、集群维护（Group Maintenance）等，简化分布式应用协调及其管理的难度，提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行，不过它的长处在于通过分布式ZooKeeper集群（一个Leader，多个Follower），基于一定的策略来保证ZooKeeper集群的稳定性和可用性，从而实现分布式应用的可靠性。
有关ZooKeeper的介绍，网上很多，也可以参考文章后面，我整理的一些相关链接。
ZooKeeper的安装配置还算比较容易的，下面，我们简单说明一下ZooKeeper的配置。
ZooKeeper Standalone模式
从Apache网站上（zookeeper.apache.org）下载ZooKeeper软件包，我选择了3.3.4版本的（zookeeper-3.3.4.tar.gz），在一台Linux机器上安装非常容易，只需要解压缩后，简单配置一下即可以启动ZooKeeper服务器进程。
将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg修改为zoo.cfg，配置文件内容如下</p>]]></description>
	<p>ZooKeeper是一个分布式开源框架，提供了协调分布式应用的基本服务，它向外部应用暴露一组通用服务——分布式同步（Distributed Synchronization）、命名服务（Naming Service）、集群维护（Group Maintenance）等，简化分布式应用协调及其管理的难度，提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行，不过它的长处在于通过分布式ZooKeeper集群（一个Leader，多个Follower），基于一定的策略来保证ZooKeeper集群的稳定性和可用性，从而实现分布式应用的可靠性。
有关ZooKeeper的介绍，网上很多，也可以参考文章后面，我整理的一些相关链接。
ZooKeeper的安装配置还算比较容易的，下面，我们简单说明一下ZooKeeper的配置。
ZooKeeper Standalone模式
从Apache网站上（zookeeper.apache.org）下载ZooKeeper软件包，我选择了3.3.4版本的（zookeeper-3.3.4.tar.gz），在一台Linux机器上安装非常容易，只需要解压缩后，简单配置一下即可以启动ZooKeeper服务器进程。
将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg修改为zoo.cfg，配置文件内容如下</p>			<content:encoded><![CDATA[<p>ZooKeeper是一个分布式开源框架，提供了协调分布式应用的基本服务，它向外部应用暴露一组通用服务——分布式同步（Distributed Synchronization）、命名服务（Naming Service）、集群维护（Group Maintenance）等，简化分布式应用协调及其管理的难度，提供高性能的分布式服务。ZooKeeper本身可以以Standalone模式安装运行，不过它的长处在于通过分布式ZooKeeper集群（一个Leader，多个Follower），基于一定的策略来保证ZooKeeper集群的稳定性和可用性，从而实现分布式应用的可靠性。
有关ZooKeeper的介绍，网上很多，也可以参考文章后面，我整理的一些相关链接。
ZooKeeper的安装配置还算比较容易的，下面，我们简单说明一下ZooKeeper的配置。
ZooKeeper Standalone模式
从Apache网站上（zookeeper.apache.org）下载ZooKeeper软件包，我选择了3.3.4版本的（zookeeper-3.3.4.tar.gz），在一台Linux机器上安装非常容易，只需要解压缩后，简单配置一下即可以启动ZooKeeper服务器进程。
将zookeeper-3.3.4/conf目录下面的 zoo_sample.cfg修改为zoo.cfg，配置文件内容如下</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/469.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HBase-0.90.4集群安装配置</title>
		<link>http://shiyanjun.cn/archives/151.html</link>
		<comments>http://shiyanjun.cn/archives/151.html#comments</comments>
		<pubDate>Sat, 24 Aug 2013 02:13:54 +0000</pubDate>
		<dc:creator><![CDATA[Yanjun]]></dc:creator>
				<category><![CDATA[HBase]]></category>
		<category><![CDATA[开源技术]]></category>
		<category><![CDATA[Hadoop/Hive/ZooKeeper]]></category>
		<category><![CDATA[ZooKeeper]]></category>

		<guid isPermaLink="false">http://shiyanjun.cn/?p=151</guid>
		<description><![CDATA[<p>HBase是Hadoop数据库，能够实现随机、实时读写你的Big Data，它是Google的Bigtable的开源实现，可以参考Bigtable的论文Bigtable: A Distributed Storage System for Structured。HBase的存储模型可以如下三个词来概括：distributed, versioned, column-oriented。HBase并非只能在HDFS文件系统上使用， 你可以应用在你的本地文件系统上部署HBase实例来存储数据。
准备工作

hbase-0.90.4.tar.gz [http://labs.renren.com/apache-mirror//hbase/stable/hbase-0.90.4.tar.gz]
zookeeper-3.3.4.tar.gz

下面介绍Standalone和Distributed安装过程。
Standalone模式
这种安装模式，是在你的本地文件系统上安装配置一个HBase实例，安装配置比较简单。
首先，要保证你的本地系统能够通过ssh无密码访问，配置如下：
检查一下权限：你的~/.ssh目录的权限是否为755，~/.ssh/authorized_keys的权限是否为644，如果不是，执行下面的命令行：
然后，安装配置HBase，过程如下：
修改conf/hbase-env.sh中JAVA_HOME配置，指定为你的JAVA_HOME目录：
其他配置，如HBASE*指定配置项，如</p>]]></description>
	<p>HBase是Hadoop数据库，能够实现随机、实时读写你的Big Data，它是Google的Bigtable的开源实现，可以参考Bigtable的论文Bigtable: A Distributed Storage System for Structured。HBase的存储模型可以如下三个词来概括：distributed, versioned, column-oriented。HBase并非只能在HDFS文件系统上使用， 你可以应用在你的本地文件系统上部署HBase实例来存储数据。
准备工作

hbase-0.90.4.tar.gz [http://labs.renren.com/apache-mirror//hbase/stable/hbase-0.90.4.tar.gz]
zookeeper-3.3.4.tar.gz

下面介绍Standalone和Distributed安装过程。
Standalone模式
这种安装模式，是在你的本地文件系统上安装配置一个HBase实例，安装配置比较简单。
首先，要保证你的本地系统能够通过ssh无密码访问，配置如下：

ssh-keygen -t dsa
cat ~/.ssh/id_dsa.pub &gt;&gt; ~/.ssh/authorized_keys

检查一下权限：你的~/.ssh目录的权限是否为755，~/.ssh/authorized_keys的权限是否为644，如果不是，执行下面的命令行：

chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_key</p>			<content:encoded><![CDATA[<p>HBase是Hadoop数据库，能够实现随机、实时读写你的Big Data，它是Google的Bigtable的开源实现，可以参考Bigtable的论文Bigtable: A Distributed Storage System for Structured。HBase的存储模型可以如下三个词来概括：distributed, versioned, column-oriented。HBase并非只能在HDFS文件系统上使用， 你可以应用在你的本地文件系统上部署HBase实例来存储数据。
准备工作

hbase-0.90.4.tar.gz [http://labs.renren.com/apache-mirror//hbase/stable/hbase-0.90.4.tar.gz]
zookeeper-3.3.4.tar.gz

下面介绍Standalone和Distributed安装过程。
Standalone模式
这种安装模式，是在你的本地文件系统上安装配置一个HBase实例，安装配置比较简单。
首先，要保证你的本地系统能够通过ssh无密码访问，配置如下：
检查一下权限：你的~/.ssh目录的权限是否为755，~/.ssh/authorized_keys的权限是否为644，如果不是，执行下面的命令行：
然后，安装配置HBase，过程如下：
修改conf/hbase-env.sh中JAVA_HOME配置，指定为你的JAVA_HOME目录：
其他配置，如HBASE*指定配置项，如</p>]]></content:encoded>
			<wfw:commentRss>http://shiyanjun.cn/archives/151.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
