List of usage examples for org.apache.zookeeper WatchedEvent getPath
public String getPath()
From source file:org.apache.hadoop.hbase.zookeeper.ZKWatcher.java
License:Apache License
/** * Method called from ZooKeeper for events and connection status. * <p>//www. j a v a 2 s . com * Valid events are passed along to listeners. Connection status changes * are dealt with locally. */ @Override public void process(WatchedEvent event) { LOG.debug(prefix("Received ZooKeeper Event, " + "type=" + event.getType() + ", " + "state=" + event.getState() + ", " + "path=" + event.getPath())); switch (event.getType()) { // If event type is NONE, this is a connection status change case None: { connectionEvent(event); break; } // Otherwise pass along to the listeners case NodeCreated: { for (ZKListener listener : listeners) { listener.nodeCreated(event.getPath()); } break; } case NodeDeleted: { for (ZKListener listener : listeners) { listener.nodeDeleted(event.getPath()); } break; } case NodeDataChanged: { for (ZKListener listener : listeners) { listener.nodeDataChanged(event.getPath()); } break; } case NodeChildrenChanged: { for (ZKListener listener : listeners) { listener.nodeChildrenChanged(event.getPath()); } break; } default: throw new IllegalStateException("Received event is not valid: " + event.getState()); } }
From source file:org.apache.hadoop.hbase.zookeeper.ZooKeeperWrapper.java
License:Apache License
/** * This is the primary ZK watcher//from w w w . ja v a 2s . c o m * @see org.apache.zookeeper.Watcher#process(org.apache.zookeeper.WatchedEvent) */ @Override public synchronized void process(WatchedEvent event) { LOG.debug("<" + instanceName + "> Received ZK WatchedEvent: " + "[path=" + event.getPath() + "] " + "[state=" + event.getState().toString() + "] " + "[type=" + event.getType().toString() + "]"); if (event.getType() == EventType.None) { if (event.getState() == KeeperState.Expired) { this.abort("ZooKeeper Session Expiration, aborting server", new KeeperException.SessionExpiredException()); } else if (event.getState() == KeeperState.Disconnected) { LOG.warn("Disconnected from ZooKeeper"); } else if (event.getState() == KeeperState.SyncConnected) { LOG.info("Reconnected to ZooKeeper"); } return; } for (Watcher w : listeners) { try { w.process(event); } catch (Throwable t) { LOG.error("<" + instanceName + ">" + " Sub-ZK Watcher threw an exception " + "in process()", t); } } }
From source file:org.apache.hadoop.hive.llap.registry.impl.SlotZnode.java
License:Apache License
private void processWatchedEvent(WatchedEvent event) { if (event.getType() != EventType.NodeDeleted) return;/*from w w w . ja va 2 s .c om*/ String localPath = nodePath.get(); if (localPath == null) return; if (!localPath.equals(event.getPath())) { LOG.info("Ignoring the NodeDeleted event for " + event.getPath()); return; } LOG.info("Trying to reacquire because of the NodeDeleted event"); startCreateCurrentNode(); }
From source file:org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore.java
License:Apache License
@VisibleForTesting @Private/* ww w . j a va2s. c o m*/ @Unstable public synchronized void processWatchEvent(WatchedEvent event) throws Exception { Event.EventType eventType = event.getType(); LOG.info("Watcher event type: " + eventType + " with state:" + event.getState() + " for path:" + event.getPath() + " for " + this); if (eventType == Event.EventType.None) { // the connection state has changed switch (event.getState()) { case SyncConnected: LOG.info("ZKRMStateStore Session connected"); if (oldZkClient != null) { // the SyncConnected must be from the client that sent Disconnected zkClient = oldZkClient; oldZkClient = null; ZKRMStateStore.this.notifyAll(); LOG.info("ZKRMStateStore Session restored"); } break; case Disconnected: LOG.info("ZKRMStateStore Session disconnected"); oldZkClient = zkClient; zkClient = null; break; case Expired: // the connection got terminated because of session timeout // call listener to reconnect LOG.info("ZKRMStateStore Session expired"); createConnection(); break; default: LOG.error("Unexpected Zookeeper" + " watch event state: " + event.getState()); break; } } }
From source file:org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore.java
License:Apache License
@VisibleForTesting @Private/* www . j av a2s. c o m*/ @Unstable public synchronized void processWatchEvent(ZooKeeper zk, WatchedEvent event) throws Exception { // only process watcher event from current ZooKeeper Client session. if (zk != activeZkClient) { LOG.info("Ignore watcher event type: " + event.getType() + " with state:" + event.getState() + " for path:" + event.getPath() + " from old session"); return; } Event.EventType eventType = event.getType(); LOG.info("Watcher event type: " + eventType + " with state:" + event.getState() + " for path:" + event.getPath() + " for " + this); if (eventType == Event.EventType.None) { // the connection state has changed switch (event.getState()) { case SyncConnected: LOG.info("ZKRMStateStore Session connected"); if (zkClient == null) { // the SyncConnected must be from the client that sent Disconnected zkClient = activeZkClient; ZKRMStateStore.this.notifyAll(); LOG.info("ZKRMStateStore Session restored"); } break; case Disconnected: LOG.info("ZKRMStateStore Session disconnected"); zkClient = null; break; case Expired: // the connection got terminated because of session timeout // call listener to reconnect LOG.info("ZKRMStateStore Session expired"); createConnection(); break; default: LOG.error("Unexpected Zookeeper" + " watch event state: " + event.getState()); break; } } }
From source file:org.apache.hama.bsp.sync.ZKSyncBSPMasterClient.java
License:Apache License
@Override public void process(WatchedEvent arg0) { LOG.debug("Processing event " + arg0.getPath()); LOG.debug("Processing event type " + arg0.getType().toString()); }
From source file:org.apache.hama.bsp.sync.ZKSyncEventListener.java
License:Apache License
/** * /*www.j av a2 s . com*/ */ @Override public void process(WatchedEvent event) { client.registerListener(event.getPath(), ZKSyncEventFactory.getValueChangeEvent(), this); // if(LOG.isDebugEnabled()){ LOG.debug(event.toString()); // } if (event.getType().equals(EventType.NodeChildrenChanged)) { LOG.debug("Node children changed - " + event.getPath()); onChildKeySetChange(); } else if (event.getType().equals(EventType.NodeDeleted)) { LOG.debug("Node children deleted - " + event.getPath()); onDelete(); } else if (event.getType().equals(EventType.NodeDataChanged)) { LOG.debug("Node children changed - " + event.getPath()); onChange(); } }
From source file:org.apache.helix.manager.zk.zookeeper.ZkClient.java
License:Apache License
@Override public void process(WatchedEvent event) { LOG.debug("Received event: " + event); _zookeeperEventThread = Thread.currentThread(); boolean stateChanged = event.getPath() == null; boolean znodeChanged = event.getPath() != null; boolean dataChanged = event.getType() == Event.EventType.NodeDataChanged || event.getType() == Event.EventType.NodeDeleted || event.getType() == Event.EventType.NodeCreated || event.getType() == Event.EventType.NodeChildrenChanged; getEventLock().lock();/* w ww .j a v a2 s . c o m*/ try { // We might have to install child change event listener if a new node was created if (getShutdownTrigger()) { LOG.debug("ignoring event '{" + event.getType() + " | " + event.getPath() + "}' since shutdown triggered"); return; } if (stateChanged) { processStateChanged(event); } if (dataChanged) { processDataOrChildChange(event); } } finally { if (stateChanged) { getEventLock().getStateChangedCondition().signalAll(); // If the session expired we have to signal all conditions, because watches might have been removed and // there is no guarantee that those // conditions will be signaled at all after an Expired event // TODO PVo write a test for this if (event.getState() == KeeperState.Expired) { getEventLock().getZNodeEventCondition().signalAll(); getEventLock().getDataChangedCondition().signalAll(); // We also have to notify all listeners that something might have changed fireAllEvents(); } } if (znodeChanged) { getEventLock().getZNodeEventCondition().signalAll(); } if (dataChanged) { getEventLock().getDataChangedCondition().signalAll(); } getEventLock().unlock(); // update state change counter. recordStateChange(stateChanged, dataChanged); LOG.debug("Leaving process event"); } }
From source file:org.apache.hms.controller.CommandHandler.java
License:Apache License
@Override public void process(WatchedEvent event) { String path = event.getPath(); LOG.info("Triggered path: " + path); if (event.getType() == Event.EventType.NodeChildrenChanged) { if (path.equals(CommonConfigurationKeys.ZOOKEEPER_LIVE_CONTROLLER_PATH_DEFAULT)) { zk.getChildren(CommonConfigurationKeys.ZOOKEEPER_COMMAND_QUEUE_PATH_DEFAULT, this, this, null); } else {/* w w w. ja v a2 s .c o m*/ zk.getChildren(path, this, this, null); } } else if (event.getType() == Event.EventType.NodeDataChanged) { tasks.add(path); } }
From source file:org.apache.pulsar.zookeeper.ZooKeeperCache.java
License:Apache License
public <T> void process(WatchedEvent event, final CacheUpdater<T> updater) { final String path = event.getPath(); if (path != null) { dataCache.synchronous().invalidate(path); childrenCache.invalidate(path);/*w w w . ja va 2 s .c om*/ existsCache.invalidate(path); if (executor != null && updater != null) { if (LOG.isDebugEnabled()) { LOG.debug("Submitting reload cache task to the executor for path: {}, updater: {}", path, updater); } try { executor.submitOrdered(path, new SafeRunnable() { @Override public void safeRun() { updater.reloadCache(path); } }); } catch (RejectedExecutionException e) { // Ok, the service is shutting down LOG.error("Failed to updated zk-cache {} on zk-watch {}", path, e.getMessage()); } } else { if (LOG.isDebugEnabled()) { LOG.debug("Cannot reload cache for path: {}, updater: {}", path, updater); } } } }