登录
hadoop@hadoopMaster:~$ zkCli.sh -server hadoopMaster:2181
[zk: hadoopMaster:2181(CONNECTED) 0] help
[zk: hadoopMaster:2181(CONNECTED) 3] create /zk mydatatest
Created /zk
[zk: hadoopMaster:2181(CONNECTED) 4] ls /
[zk, hbase, zookeeper]
[zk: hadoopMaster:2181(CONNECTED) 5] get /zk
mydatatest
cZxid = 0x2d00000093
ctime = Thu Jul 17 09:20:54 CST 2014
mZxid = 0x2d00000093
mtime = Thu Jul 17 09:20:54 CST 2014
pZxid = 0x2d00000093
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0
[zk: hadoopMaster:2181(CONNECTED) 6] set /zk ColonelHou
cZxid = 0x2d00000093
ctime = Thu Jul 17 09:20:54 CST 2014
mZxid = 0x2d00000094
mtime = Thu Jul 17 09:22:08 CST 2014
pZxid = 0x2d00000093
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0
[zk: hadoopMaster:2181(CONNECTED) 7] get /zk
ColonelHou
cZxid = 0x2d00000093
ctime = Thu Jul 17 09:20:54 CST 2014
mZxid = 0x2d00000094
mtime = Thu Jul 17 09:22:08 CST 2014
pZxid = 0x2d00000093
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 10
numChildren = 0
[zk: hadoopMaster:2181(CONNECTED) 8] delete /zk
[zk: hadoopMaster:2181(CONNECTED) 9] ls /
[hbase, zookeeper]
ZK是一种高性能、可扩展的服务,为分布式应用提供一致性服务的软件;
使用一个类似文件系统的树结构;数据可以挂在某个节点上,可以对这个节点进行删改。
另外我们还发现,当改动一个节点的时候,集群中活着的机器都会更新到一致的数据。
每个树结点在ZK中叫znode,只有唯一的路径标识,
znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除
读写速度非常快(因为它的结点都存在内存中),并且读的速度要比写的速度更快,更新日志被记录到了磁盘中,以便用于恢复数据。为避免单点失效,zookeeper的数据是在多个server上留有备份的。不管客户端连接到的是哪个server,它看到的数据都是一致的。如果client和一个server的TCP连接失效,它会尝试连接另一个server。众多server中有一个是leader。读是局部性的,即client只需要从与它相连的server上读取数据即可;而client有写请求的话,与之相连的server会通知leader,然后leader会把写操作分发给所有server。所以定要比读慢很多。
CreateMode
PERSISTENT:创建后只要不删就永久存在
EPHEMERAL:会话结束年结点自动被删除,EPHEMERAL结点不允许有子节点
SEQUENTIAL:节点名末尾会自动追加一个10位数的单调递增的序号,同一个节点的所有子节点序号是单调递增的
PERSISTENT_SEQUENTIAL:结合PERSISTENT和SEQUENTIAL
EPHEMERAL_SEQUENTIAL:结合EPHEMERAL和SEQUENTIAL
Watcher & Version
watcher分为两大类:data watches和child watches。getData()和exists()上可以设置data watches,getChildren()上可以设置child watches。
setData()会触发data watches;
create()会触发data watches和child watches;
delete()会触发data watches和child watches.
ZK的Leader机制:
ZK需要在所有的服务器中选举出一个Leader ,然后让这个Leader来负责管理集群。此时,集群中的其它服务器则成为此 Leader 的 Follower 。并且,当 Leader 故障的时候,需要 ZooKeeper 能够快速地在 Follower 中选举出下一个 Leader 。这就是 ZooKeeper 的 Leader 机制
Leader选举实现:
相关推荐
使用ZK记录历史路径 讲解如何在ZK中实现页面跳转的历史记录功能,提升用户体验,使用户能够方便地返回之前的页面。 #### 结论 这份学习笔记全面覆盖了ZK框架的基础和进阶知识,适合初学者和有一定经验的开发者...
在开发过程中,开发者需要注意记录和总结经验,这样在遇到问题时可以快速找到解决方案。同时,利用好ZK开发手册,可以帮助新手快速上手ZK开发,并避免一些常见的问题。总的来说,ZK是一个强大而易用的框架,遵循正确...
在实际开发中,你还需要考虑线程安全、性能优化、错误处理和日志记录等问题。ZK7+Spring4+Hibernate4的组合提供了一种强大的方式来构建健壮且易于维护的Java Web应用,尤其适用于需要丰富用户界面和复杂业务逻辑的...
8. **silvertail.jar**:Silvertail可能是ZK的一个子项目或组件,可能包含了网络通信、日志记录、异常处理等相关功能,用于支持ZK应用的稳定运行。 9. **zweb.jar**:这部分可能涉及到ZK的Web服务和HTTP处理功能,...
ZK CURD小例是针对初学者的一个教程,主要涵盖了数据绑定和页面间事件传送这两个核心概念。在Web开发中,ZK是一个基于组件的Java AJAX框架,它提供了丰富的用户界面组件和简单易用的数据绑定机制,使得开发者可以更...
通过ZK框架,开发者可以轻松地实现这些功能,使用户能够创建新记录、查询现有数据、更新信息以及删除不需要的条目。ZK的事件驱动模型使得这些操作可以通过直观的用户界面元素,如按钮和表格,轻松触发。 ZK支持多种...
4. **日志与快照**:Zookeeper通过事务日志记录所有的修改操作,一旦发生故障,可以通过重放日志恢复数据。同时,定期生成数据快照,用于快速恢复。这些功能确保了系统的高可用性。 5. **API设计**:Zookeeper提供...
ZK-S1007信息屏设备可作为考勤系统使用,记录员工的上下班时间,自动生成考勤报告,简化了人力资源部门的管理工作。用户可以通过设备设置考勤规则,如工作时间、休假政策等。 5. 多媒体信息发布: 设备具有多媒体...
6. **操作日志**:记录用户的操作历史,便于追踪和回溯问题。 7. **性能监控**:可能包含一些基本的性能指标,如请求延迟、处理速率等,帮助评估ZooKeeper的运行性能。 8. **命令行模拟**:提供类似ZooKeeper...
通过这个SDK,开发者可以学习如何操作ZK设备的数据库,处理员工的打卡记录,实现自动化的人力资源管理功能。 在使用ZK SDK时,开发者需要了解以下几个核心知识点: 1. **API接口**:SDK提供了一系列的API函数,如...
- **org.zkoss.util.logging.realCauseBriefly**: 控制是否只记录异常的根本原因。 - **org.zkoss.web.classWebResource.cache**: 设置 Web 资源的缓存策略。 - **org.zkoss.web.classWebResource.cache.CSS.hours**...
- 这份文档不仅是学习ZK的宝贵资料,也是团队协作的重要工具,通过记录每个人的学习进度和理解,有助于知识共享和问题解决。 - 随着时间的推移,文档将持续更新和完善,以适应项目的进展和技术的演进。 总结,ZK...
8. **AOP(面向切面编程)**:SpringMVC和Dubbo结合使用时,可以利用Spring的AOP特性,对服务调用进行统一的事务管理、日志记录、异常处理等。 **ZooKeeper** 9. **ZooKeeper核心概念**:包括节点(ZNode)、会话...
这个应用能够帮助用户记录待办事项,存储在数据库中,用户可以通过添加、更新和删除操作来管理这些事项。 在开始之前,确保已安装JDK(版本1.4或更高)和Servlet容器,如Tomcat。如果还没有数据库服务,可以使用...
源码中的Metrics和Logging模块提供了丰富的监控数据和日志记录,这对于故障排查和性能优化具有重要价值。 总的来说,通过深入研究Zookeeper 6.5.2的源码,我们可以全面了解其设计理念、工作原理和实现细节,从而在...
本话题将探讨如何利用Zookeeper(zk)与Hibernate结合来实现分页查询。Zookeeper是一个分布式协调服务,而Hibernate则是一个流行的Java对象关系映射(ORM)框架,它们的结合可以为分布式环境下的数据处理提供强大...
3. 操作记录:提供操作日志,记录对Zookeeper的所有增删改查操作,便于追踪和问题排查。 4. 角色扮演:模拟客户端请求,进行数据读写测试,验证Zookeeper配置的正确性。 其次,prettyZoo2.1.1的特色亮点: - 用户...
记录了自己在工作当中对zk的使用、理解总结,也在不断的完善当中,分享给大家
它通过在源代码中插入特殊的注释标签(如`@param`, `@return`, `@function`等),让开发者能够清晰地记录函数、类、接口以及它们的参数、返回值和其他元数据。这对于理解和维护代码库至关重要,特别是在大型项目中。...