ZK

ZooKeeper典型应用场景一览

隐身守侯 提交于 2019-12-06 03:03:55
原文链接: https://www.cnblogs.com/tommyli/p/3766189.html ZooKeeper 典型应用场景一览 数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新。例如全局的配置信息,服务式服务框架的服务地址列表等就非常适合使用。 应用中用到的一些配置信息放到ZK上进行集中管理。这类场景通常是这样:应用在启动的时候会主动来获取一次配置,同时,在节点上注册一个Watcher,这样一来,以后每次配置有更新的时候,都会实时通知到订阅的客户端,从来达到获取最新配置信息的目的。 分布式搜索服务中,索引的元信息和服务器集群机器的节点状态存放在ZK的一些指定节点,供各个客户端订阅使用。 分布式日志收集系统。这个系统的核心工作是收集分布在不同机器的日志。收集器通常是按照应用来分配收集任务单元,因此需要在ZK上创建一个以应用名作为path的节点P,并将这个应用的所有机器ip,以子节点的形式注册到节点P上,这样一来就能够实现机器变动的时候,能够实时通知到收集器调整任务分配。 系统中有些信息需要动态获取,并且还会存在人工手动去修改这个信息的发问。通常是暴露出接口,例如JMX接口,来获取一些运行时的信息。引入ZK之后,就不用自己实现一套方案了

集群命令

泄露秘密 提交于 2019-12-06 00:31:10
集群 启动命令 停止命令 查看状态 hadoop start-all.sh stop-all.sh hdfs dfsadmin -report zookeeper ${ZK_HOME}/bin/zkServer.sh start ${ZK_HOME}/bin/zkServer.sh stop ${ZK_HOME}/bin/zkServer.sh status JobHistoryServer mr-jobhistory-daemon.sh start historyserver hive bin/hive --service hiveserver2 bin/beenline !connect jdbc:hive2://node03:10000 hbase start-hbase.sh bin/HBase shell stop-hbase.sh 来源: https://www.cnblogs.com/William364248886/p/11953759.html

Is it possible use @NotifyChange instead of BindUtils.postNotifyChange?

放肆的年华 提交于 2019-12-05 19:29:13
I have one confusion use between @NotifyChange and BindUtils.postNotifyChange ,Why use this two event .Before i read this question In ZK Can we PostNotifyChange more than one variables . But i cant understand this question why use this more than one variable. Here's an example: @Command @NotifyChange({ "folderInfoList", "isDisabled", "selectedFolderInfo" }) public void refreshFolderInfo() { logger.debug("Refresh Icon selected"); if (isDirty()) { Messagebox.show(pageResourceBundle.getText("JS_CONFIRM_DATAMODIFED"), pageResourceBundle.getText("JS_CONFIRM_DATAMODIFED_TYPE"), Messagebox.OK |

zk中使用zab协议来保证数据一致性

谁说我不能喝 提交于 2019-12-05 19:18:31
1zab能够保证一个全局的变更序列被顺序应用 2zab协议包含两个模式: 崩溃恢复 消息广播 Zab协议必须设计这样一个选举算法:能够确保提交已经被leader提交的事务proposal,同时丢弃被跳过的事务Proposal 数据同步 所有运行服务器,要不成为leader,要不成为follower和leader进行同步 在zab协议的事务编号zxid,是一个64位数字,低32位是一个简单的单调递增计数器,高32位是代表leader周期epoch的编号 zab系统模型 进程组,状态有up状态,也有down状态,当集群中存在过半up状态组成的进行后,就可以进行正常的消息广播了 使用pi,pj分别表示进程组[]中两个不同进程,使用cij表示进程pi和pj之间的网络通信通道,满足如下两个基本条件 完整性 如何进程pj收到了来自pi的消息m,那么进程pi一定确实发送了消息m 前置性, 如果进程pj收到了消息m,那么存在这样的消息m`,如果m`是m的前置消息,那么pj务必先接收到消息m`,然后再接收到m,这样才能保证消息的顺序 主进程周期 为了保证每次广播出来的消息是一致的,必须确保zab协议只有在充分完成崩溃恢复阶段之后,新的主进程才可以开始生成新的事务消息广播。 事务, 各个进程都存在一个类似于transactions(v,z)这样的函数调用,来实现主进程对状态变更的广播,v表示事务内容

Zookeeper Watcher和选举机制

*爱你&永不变心* 提交于 2019-12-05 17:31:44
Watcher 在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event)。 7.1什么是Watcher接口 同一个事件类型在不同的通知状态中代表的含义有所不同,表7-3列举了常见的通知状态和事件类型。 表7-3 Watcher通知状态与事件类型一览 KeeperState EventType 触发条件 说明 None (-1) 客户端与服务端成功建立连接 SyncConnected (0) NodeCreated (1) Watcher监听的对应数据节点被创建 NodeDeleted (2) Watcher监听的对应数据节点被删除 此时客户端和服务器处于连接状态 NodeDataChanged (3) Watcher监听的对应数据节点的数据内容发生变更 NodeChildChanged (4) Wather监听的对应数据节点的子节点列表发生变更 Disconnected (0) None (-1) 客户端与ZooKeeper服务器断开连接 此时客户端和服务器处于断开连接状态 Expired (-112) Node (-1) 会话超时 此时客户端会话失效

Watcher监听和选举机制

試著忘記壹切 提交于 2019-12-05 17:30:38
在 ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event)。 一,什么 是 Watcher 接口 同一个事件类型在不同的通知状态中代表的含义有所不同,表 7-3列举了常见的通知状态和事件类型。 表 7-3 Watcher通知状态与事件类型一览 KeeperState EventType 触发条件 说明 None (-1) 客户端与服务端成功建立连接 SyncConnected (0) NodeCreated (1) Watcher监听的对应数据节点被创建 NodeDeleted (2) Watcher监听的对应数据节点被删除 此时客户端和服务器处于连接状态 NodeDataChanged (3) Watcher监听的对应数据节点的数据内容发生变更 NodeChildChanged (4) Wather监听的对应数据节点的子节点列表发生变更 Disconnected (0) None (-1) 客户端与ZooKeeper服务器断开连接 此时客户端和服务器处于断开连接状态 Expired (-112) Node (-1) 会话超时 此时客户端会话失效

Zookeeper的Watcher方法

徘徊边缘 提交于 2019-12-05 16:53:26
Watcher接口 在ZooKeeper中,接口类Watcher用于表示一个标准的事件处理器,其定义了事件通知相关的逻辑,包含KeeperState和EventType两个枚举类,分别代表了通知状态和事件类型,同时定义了事件的回调方法:process(WatchedEvent event)。 Watcher事件 同一个事件类型在不同的通知状态中代表的含义有所不同,下表列举了常见的通知状态和事件类型 回调方法 process() process方法是Watcher接口中的一个回调方法,当ZooKeeper向客户端发送一个Watcher事件通知时,客户端就会对相应的process方法进行回调,从而实现对事件的处理。process方法的定义如下: abstract public void process(WatchedEvent event); 这个回调方法的定义非常简单,我们重点看下方法的参数定义:WatchedEvent。 WatchedEvent包含了每一个事件的三个基本属性:通知状态(keeperState),事件类型(EventType)和节点路径(path),其数据结构如图7-5所示。ZooKeeper使用WatchedEvent对象来封装服务端事件并传递给Watcher,从而方便回调方法process对服务端事件进行处理。 提到WatchedEvent

Hadoop分布式环境高可用配置

有些话、适合烂在心里 提交于 2019-12-05 16:36:13
前面文章介绍过 Hadoop分布式的配置 ,但是设计到高可用,这次使用zookeeper配置Hadoop高可用。 1.环境准备 1)修改IP 2)修改主机名及主机名和IP地址的映射 3)关闭防火墙 4)ssh免密登录 5)创建hadoop用户和用户组 6)安装更新安装源、JDK、配置环境变量等 2.服务器规划 Node1 Node2 Node3 NameNode NameNode JournalNode JournalNode JournalNode DataNode DataNode DataNode ZK ZK ZK ResourceManager ResourceManager NodeManager NodeManager NodeManager 3.配置Zookeeper集群 参考我的之前的文章 Zookeeper安装和配置说明 4.安装Hadoop 1)官方下载地址:http://hadoop.apache.org/ 2)解压hadoop2.7.2至/usr/local/hadoop2.7 3)修改hadoop2.7的所属组和所属者为hadoop chown -R hadoop:hadoop /usr/local/hadoop2.7 4)配置HADOOP_HOME vim /etc/profile #HADOOP_HOME export HADOOP_HOME=/usr

ZK window not unique in ID space

烂漫一生 提交于 2019-12-05 16:26:55
In our project we use ZK for webpages. There is a combobox which has lists. When selected, it fetches data from a java object through onSelect , i have given the logic. when i select one there are 4 listboxes on that page to be filled with data according to the selection. when i select first time, no problem occurs. But on second time i get an error pop-up like "Not Unique in the id space of Window" and showing the list box item id which have to be filled on select. Can any one help out there? Note: Though it shows this error i get the listboxes filled correctly according to the combo box