Example usage for org.apache.zookeeper WatchedEvent getPath

List of usage examples for org.apache.zookeeper WatchedEvent getPath

Introduction

In this page you can find the example usage for org.apache.zookeeper WatchedEvent getPath.

Prototype

public String getPath() 

Source Link

Usage

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);
            }
        }
    }
}