- 浏览: 150201 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (69)
- Maven (1)
- lucene (22)
- bobo zoie (6)
- eclipse (5)
- Nexus (1)
- Git (1)
- trac (1)
- RMI (2)
- svn (0)
- Protocol buffer (0)
- sensei (6)
- JMX (2)
- Faceted search (1)
- Linux (1)
- Cassandra (1)
- Zookeeper (3)
- zoie (1)
- jmap (1)
- mongodb (2)
- 百度百科 (2)
- 词库 (2)
- 抓取 (2)
- IndexTank (1)
- LinkedIn (4)
- norbert (3)
- 分布式 (2)
- senseidb (2)
- Thrift (1)
- scala (1)
- 搜索引擎 (1)
- 质量 (1)
- Nosql (1)
- Jaccard (1)
- Mahout (1)
最新评论
-
bluky999:
@Mark
怎样量化评价搜索引擎的结果质量 -
baso4233:
非常感谢,我跑通了。途中出现了,java.lang.Unsup ...
norbert 高并发分布式服务例子 examples (二) -
yangsong158:
rabbit9898 写道xiansuanla 写道我运行 m ...
JMX 入门例子 -
rabbit9898:
xiansuanla 写道我运行 main方法以后 cmd 里 ...
JMX 入门例子 -
xiansuanla:
我运行 main方法以后 cmd 里面运行 jconsole ...
JMX 入门例子
源: http://www.javabloger.com/article/apache-zookeeper-hadoop.html
口水:Zookeeper是我目前接触过Apache开源系统中比较复杂的一个产品,要搞清楚这个东东里面的运作关系还真不是一时半会可以搞定的事,本人目前只略知皮毛之术。
ZooKeeper 是什么?
ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。
ZooKeeper 如何工作?
ZooKeeper是作为分布式应用建立更高层次的同步(synchronization)、配置管理 (configuration maintenance)、群组(groups)以及名称服务(naming)。在编程上,ZooKeeper设计很简单,所使用的数据模型风格很像文件系统的目录树结构,简单来说,有点类似windows中注册表的结构,有名称,有树节点,有Key(键)/Value(值)对的关系,可以看做一个树形结构的数据库,分布在不同的机器上做名称管理。
Zookeeper分为2个部分:服务器端和客户端,客户端只连接到整个ZooKeeper服务的某个服务器上。客户端使用并维护一个TCP连接,通过这个连接发送请求、接受响应、获取观察的事件以及发送心跳。如果这个TCP连接中断,客户端将尝试连接到另外的ZooKeeper服务器。客户端第一次连接到ZooKeeper服务时,接受这个连接的 ZooKeeper服务器会为这个客户端建立一个会话。当这个客户端连接到另外的服务器时,这个会话会被新的服务器重新建立。
启动Zookeeper服务器集群环境后,多个Zookeeper服务器在工作前会选举出一个Leader,在接下来的工作中这个被选举出来的Leader死了,而剩下的Zookeeper服务器会知道这个Leader死掉了,在活着的Zookeeper集群中会继续选出一个Leader,选举出leader的目的是为了可以在分布式的环境中保证数据的一致性。如图所示:
另外,ZooKeeper 支持watch(观察)的概念。客户端可以在每个znode结点上设置一个观察。如果被观察服务端的znode结点有变更,那么watch就会被触发,这个watch所属的客户端将接收到一个通知包被告知结点已经发生变化。若客户端和所连接的ZooKeeper服务器断开连接时,其他客户端也会收到一个通知,也就说一个Zookeeper服务器端可以对于多个客户端,当然也可以多个Zookeeper服务器端可以对于多个客户端,如图所示:
你还可以通过命令查看出,当前那个Zookeeper服务端的节点是Leader,哪个是Follower,如图所示:
我通过试验观察到 Zookeeper的集群环境最好有3台以上的节点,如果只有2台,那么2台当中不管那台机器down掉,将只会剩下一个leader,那么如果有再有客户端连接上来,将无法工作,并且剩下的leader服务器会不断的抛出异常。内容如下:
java.net.ConnectException: Connection refused
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507)
at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:347)
at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:381)
at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:674)
at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:611)
2010-11-15 00:31:52,031 – INFO [QuorumPeer:/0:0:0:0:0:0:0:0:2181:FastLeaderElection@683] – Notification time out: 12800
并且客户端连接时还会抛出这样的异常,说明连接被拒绝,并且等待一个socket连接新的连接,这里socket新的连接指的是zookeeper中的一个Follower。
org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1000) Opening socket connection to server 192.168.50.211/192.168.50.211:2181
org.apache.zookeeper.ClientCnxn$SendThread.primeConnection(ClientCnxn.java:908) Socket connection established to 192.168.50.211/192.168.50.211:2181, initiating session
org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1118) Unable to read additional data from server sessionid 0×0, likely server has closed socket, closing socket connection and attempting reconnect
org.apache.zookeeper.ClientCnxn$SendThread.startConnect(ClientCnxn.java:1000) Opening socket connection to server localhost/127.0.0.1:2181
2010-11-15 13:31:56,626 WARN org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1120) Session 0×0 for server null, unexpected error, closing socket connection and attempting reconnect
先写到这里,全面了解Zookeeper不太容易,光看Apache Zookeeper官方的wiki和文档还不能对其有深入的了解,想阅读Zookeeper中的部分源代码。另外,本人目前正在学习和了解ing,欢迎大家与我交流,谢谢。
发表评论
-
基于sensei+lucene的分布式搜索终于上线了-2012-12-08
2011-12-08 13:26 1633基于sensei+lucene的分布式搜索终于上线了 ... -
[转载] sensei分布式实时搜索系统源码解析(二) 分布式Search的流程
2011-07-22 14:57 1476看来自己很懒,发现前同事的sensei 研究了 转载: ht ... -
[转载] sensei分布式实时搜索系统源码解析(一) senseiServer的启动及若干概念
2011-07-22 14:55 1784看来自己很懒,发现前同事的sensei 研究了 转载:htt ... -
lucene分布式搜索sensei的使用及完善
2011-07-22 14:32 3550原创文章,转载请注明 ... -
转载:几种常见的基于Lucene的开源搜索解决方案对比
2011-04-06 14:38 1334一 直接使用 Lucene ( http://lucene ... -
转载:Lucene查询语法详解
2011-04-02 10:33 1107英文原文地址:http: ... -
各种字符串Hash函数比较
2011-02-12 14:54 4129Java自带的字符串hash函数: public ... -
Lucene MoreLikeThisQuery 例子 备注
2011-01-06 11:22 14541。 编码问题: MoreLikeThisQuery中的 ... -
Lucene MoreLikeThisQuery 例子
2011-01-04 13:42 2830要做一个跟文章标题相关的新闻,本来想简单做一下,就是把标 ... -
lucene 3.0 分词例子 转载
2010-12-27 17:30 1934源:http://hxraid.iteye.com/blog ... -
lucene基本概念
2010-12-03 15:51 1161一、lucene索引的建立 1 ... -
[转载] lucene使用与优化
2010-12-03 10:14 1058源:http://www.cnblogs.com/bysshi ... -
[转载] 几种常见的基于Lucene的开源搜索解决方案对比
2010-12-02 16:07 906源:http://blog.fulin.org/201 ... -
lucene中的Token, TokenStream, Tokenizer, Analyzer
2010-11-22 10:41 1351转载: Token: 如果一个字段被token化,这表示它经 ... -
Lucene3.0的几种分词系统
2010-11-17 17:25 12871、 StopAnalyzer StopAnalyze ... -
当前几个主要的Lucene中文分词器的比较
2010-11-17 12:35 13251. 基本介绍: paoding :Lucene中 ... -
lucene score explain 评分解释说明
2010-11-16 17:29 2263通过Searcher.explain(Query qu ... -
lucene 排序 (Sort SortField 构造函数)
2010-11-09 13:58 4119注意: 在lucene2.9中,排序的字段域必须inde ... -
lucene 2010 大会资料 Lucene Revolution 2010
2010-10-27 15:41 955lucene 2010 大会资料资料下载 http://ww ... -
bobo-browse 的分组统计(Faceted Search)
2010-10-25 16:43 2690基于lucene的bobo-browse 的分组统计(Face ...
相关推荐
zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; zookeeper之分布式环境搭建:Apache ZooKeeper分布式环境搭建教程; ...
apache-zookeeper分布式框架,压缩包内容:(apache-zookeeper-3.7.1-bin.tar.gz、apache-zookeeper-3.7.1.tar.gz、apache-zookeeper-3.6.4-bin.tar.gz、apache-zookeeper-3.6.4.tar.gz、apache-zookeeper-3.5.10-...
**Zookeeper系列1:入门** Zookeeper是一款分布式协调服务,由Apache基金会开发,广泛应用于分布式系统中的数据共享、配置管理、命名服务、集群同步等场景。它的设计目标是简化分布式环境下的复杂问题,提供高可用...
Apache ZooKeeper 是一个高度可靠的分布式协调服务,广泛应用于云原生环境中的服务发现、配置管理、锁服务等场景。ZooKeeper 的设计目标是简化分布式系统中的数据一致性问题,为分布式应用提供统一的服务目录和配置...
1. 解压`apache-zookeeper-3.8.4-bin.tar`到指定目录。 2. 配置`conf/zoo.cfg`,设置服务器ID、数据存储路径、集群配置等。 3. 启动Zookeeper服务,使用`bin/zkServer.sh start`命令。 4. 使用`bin/zkCli.sh`命令行...
ZooKeeper 的使用方法实例详解可以分为四个基本要求:(1)客户端所带参数、(2)ZooKeeper 服务地址、(3)被监视的 Znode 节点名称、(4)可执行程序及其所带的参数。 在 ZooKeeper 的 Java API 中,开发人员可以...
1. **服务器配置(server.properties)**:每个Zookeeper服务器都需要一个配置文件,其中包含服务器ID、数据目录和日志目录等信息。服务器ID是集群中的唯一标识,数据目录用于存储Zookeeper的数据,日志目录存放事务...
Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着分布式操作的进展,同时也提供了命名服务、配置管理、组服务、分布式同步和领导选举等功能。在Windows环境下安装...
《Apache ZooKeeper Essentials》是Packt Publishing出版的一本关于Apache ZooKeeper的重要指南,旨在帮助读者深入理解并掌握这个分布式协调服务的关键概念和技术。ZooKeeper作为一个开源项目,被广泛应用于大数据、...
1. **安装与配置**:介绍如何在不同操作系统上安装配置ZooKeeper,并设置集群环境。 2. **基本操作**:讲解如何进行读写操作、创建节点以及删除节点等基本操作。 3. **高级特性**:深入探讨ZooKeeper提供的高级功能...
Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给...
Apache ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给...
apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper-3.7.1 apache-zookeeper...
Apache ZooKeeper 是一个高度可靠的分布式协调系统,广泛应用于大数据、云计算和微服务等领域的服务发现、配置管理以及分布式锁等功能。3.6.2 版本是 Apache ZooKeeper 的一个重要更新,提供了诸多改进和修复,旨在...
Apache ZooKeeper 有关Apache ZooKeeper的最新信息,请访问我们的网站: 和我们的Wiki,位于: 包装/发布文物 使用maven构建项目后,可以从下载或在zookeeper-assembly / target目录中找到。 apache-zookeeper-...
1. 安装ZooKeeper:首先需要下载ZooKeeper的安装包,例如zookeeper-3.4.9.tar.gz,然后将其解压到指定的安装目录中。 2. 配置ZooKeeper:在ZooKeeper的配置文件zoo.cfg中,需要修改数据目录、端口号、服务器列表等...
node-zookeeper-Apache Zookeeper的Node.js客户端。 该节点模块在官方ZooKeeper C客户端API之上实现,支持ZooKeeper服务器v3.4.x-v3.6.x。 请查看以获取有关行为的更多详细信息。 最新更改在中描述 安装 npm ...
ZooKeeper顶部 作者: (在上关注我) ..../zktop.py --servers "server1,server2,server3" 或者,对于ZK样式的配置文件: ./zktop.py --config zk.conf 显示如下屏幕: Ensemble -- nodecount:10 zxid